我在sql中有兩個表。第一個病人名單,第二個是他們的報告。所有患者的報告都在報告中,只要有身份證,我們就可以加入他們。每個病人都有一些報告(也許所有記錄的字段都沒有填寫)。現在我想做一份報告,獲取每位患者的最後一份報告,但如果該患者的最後一份記錄中某些字段爲空,則應填寫該患者記錄的最後填寫記錄。我在報告中有日期。SQL查詢加入和分組和
我想爲所有患者做。在這裏,我會爲一個病人增加一個PIC作爲一個例子
在上面的例子中,我想這個病人在報告中只是強調的。
我已經寫了這個查詢,但是它甚至在最後一條記錄中的一個字段爲空,而它在之前的記錄中有數據時也是這樣。
SELECT patient.bartar_id,patient.bartar_enteringthesystem,patient.bartar_proviencename,
patient.bartar_cityname,patient.bartar_coloplastrepname,patient.bartar_consultorname,
patient.bartar_provienceofsurgeryname,patient.bartar_cityofsurgeryname,
patient.bartar_surgeryhospitalname,patient.bartar_doctor,patient.bartar_patientstatusname,
patient.bartar_ostomytypename, patient.bartar_ostomytimename,
r.bartar_date,r.bartar_delay,r.bartar_nextcall,r.new_newcaller,
r.bartar_brandname,r.bartar_pastename,r.bartar_bagname,r.bartar_accname,
r.bartar_pastepermonth,r.bartar_bagepermonth,r.bartar_insuranceinfo,
patient.bartar_deathhealeddate,patient.bartar_dateofseurgery
FROM [Bartar_MSCRM].[dbo].[Filteredbartar_newpaitient] as patient
JOIN (SELECT r.*, row_number() over (partition by r.bartar_patientname
order by r.bartar_date desc) as seqnum
FROM [Bartar_MSCRM].[dbo].[Filteredbartar_callcenterreport] as r
where r.bartar_delay is not null
) r
ON r.bartar_patientname = patient.bartar_newpaitientid and seqnum = 1
ORDER BY patient.bartar_id DESC ;
病人表
報告表
加入
最終報告我想
發佈一些示例數據並輸出,以便我們給您的答案可以在查詢中實現 – mohan111