Click here to Skip to main content
15,886,362 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
the below query is working

SQL
WITH MyCte AS 
(
select row_number() OVER( order by RRH_MR_NUM) AS RowNum,
RRH_LOCATION_CD,RRH_MR_NUM,RRH_FIRST_NAME,RRH_PAT_SEX,RRH_REGN_DT,RRH_PAT_DOB,AGE=DATEDIFF(YY,RRH_PAT_DOB,MCS_CRT_DT),dbo.fn_parsehtml (MCS_CASE_SUMMARY) AS MCS_CASE_SUMMARY,
MCS_CRT_DT,MCS_CRT_UID, CPA_ADDR_1,CPA_ADDR_2,CPA_ADDR_3,CPA_ADDR_AREA,CPA_ADDR_CITY,
CPA_STATE_CD,CPA_COUNTRY_CD,CPA_PIN_CODE from MR_CASE_SUMMARY_HISTORY_2015
left outer join RE_REGISTRATION_HEADER
on MCS_MRD_NUMBER =rrh_mr_num
LEFT OUTER JOIN CO_PATIENT_ADDRESS_DETAIL ON RRH_COMM_ID=CPA_COMM_ID AND CPA_MAILING_ADDR='1'
) SELECT * FROM MyCte
WHERE month(MCS_CRT_DT)=04 and day(MCS_CRT_DT) between 01 and 02


the below query is not working when i add between for month and day output shows emoty


SQL
WITH MyCte AS 
(
select row_number() OVER( order by RRH_MR_NUM) AS RowNum,
RRH_LOCATION_CD,RRH_MR_NUM,RRH_FIRST_NAME,RRH_PAT_SEX,RRH_REGN_DT,RRH_PAT_DOB,AGE=DATEDIFF(YY,RRH_PAT_DOB,MCS_CRT_DT),dbo.fn_parsehtml (MCS_CASE_SUMMARY) AS MCS_CASE_SUMMARY,
MCS_CRT_DT,MCS_CRT_UID, CPA_ADDR_1,CPA_ADDR_2,CPA_ADDR_3,CPA_ADDR_AREA,CPA_ADDR_CITY,
CPA_STATE_CD,CPA_COUNTRY_CD,CPA_PIN_CODE from MR_CASE_SUMMARY_HISTORY_2015
left outer join RE_REGISTRATION_HEADER
on MCS_MRD_NUMBER =rrh_mr_num
LEFT OUTER JOIN CO_PATIENT_ADDRESS_DETAIL ON RRH_COMM_ID=CPA_COMM_ID AND CPA_MAILING_ADDR='1'
) SELECT * FROM MyCte
WHERE RowNum BETWEEN 1 AND 10 and month(MCS_CRT_DT)=04 and day(MCS_CRT_DT) between 01 and 02


i use both between for rownum and month and day.

what is the mistake in my above sql query

What I have tried:

As above...
Posted
Updated 4-Apr-18 0:13am
v2
Comments
CHill60 13-Dec-17 7:28am    
It's a lot easier for us to help you if you show some sample data from the tables you are using
Richard Deeming 13-Dec-17 9:40am    
If it's not returning any data, then the first 10 rows returned from your CTE are not on either 1st or 2nd April.

You'll need to look at your data to work out why. We can't do that for you, because we don't have access to your database.

Run the working query, and look at the RowNum column in the output. The problem should be fairly obvious.
Santosh kumar Pithani 27-Feb-18 1:36am    
Your query is correct but you have to know how filters work with('AND','OR')

1 solution

try this

SELECT * FROM 
(
select row_number() OVER( order by RRH_MR_NUM) AS RowNum,
RRH_LOCATION_CD,RRH_MR_NUM,RRH_FIRST_NAME,RRH_PAT_SEX,RRH_REGN_DT,RRH_PAT_DOB,AGE=DATEDIFF(YY,RRH_PAT_DOB,MCS_CRT_DT),dbo.fn_parsehtml (MCS_CASE_SUMMARY) AS MCS_CASE_SUMMARY,
MCS_CRT_DT,MCS_CRT_UID, CPA_ADDR_1,CPA_ADDR_2,CPA_ADDR_3,CPA_ADDR_AREA,CPA_ADDR_CITY,
CPA_STATE_CD,CPA_COUNTRY_CD,CPA_PIN_CODE from MR_CASE_SUMMARY_HISTORY_2015
left outer join RE_REGISTRATION_HEADER
on MCS_MRD_NUMBER =rrh_mr_num
LEFT OUTER JOIN CO_PATIENT_ADDRESS_DETAIL ON RRH_COMM_ID=CPA_COMM_ID AND CPA_MAILING_ADDR='1'
where month(MCS_CRT_DT)=04 and day(MCS_CRT_DT) between 01 and 02 
)  MyCte
WHERE RowNum BETWEEN 1 AND 10 
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900