Вывод, который я не получаю в запросе SQL server
приведенный ниже запрос работает
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
приведенный ниже запрос не работает, когда я добавляю между for month и day output shows emoty
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
я использую оба между Для rownum и месяца и дня.
в чем ошибка в моем приведенном выше sql запросе
Что я уже пробовал:
Как и выше...
CHill60
Нам будет намного проще помочь вам, если вы покажете некоторые примеры данных из таблиц, которые вы используете
Richard Deeming
Если он не возвращает никаких данных, то первые 10 строк, возвращенных из вашего CTE, не относятся ни к 1, ни к 2 апреля.
Вам нужно будет посмотреть на свои данные, чтобы понять, почему. Мы не можем сделать это для вас, потому что у нас нет доступа к вашей базе данных.
Запустите рабочий запрос и посмотрите на RowNum
колонка в выводе. Проблема должна быть достаточно очевидной.
Santosh kumar Pithani
Ваш запрос верен, но вы должны знать, как работают фильтры с('AND','OR')