出於某種原因,當這是0它不會說0或甚至給一個空值,它只是沒有返回任何東西(附加屏幕截圖)替換SQL中的空白單元格?
我怎樣才能得到這個返回0呢?有人可以解釋爲什麼會發生這種情況嗎?
select
cast(PatientClass as varchar) + ' - ' + cast([Counted] as varchar) [Procedures Split]
from
(select
PatientClass, COUNT(*) as [Counted]
from
(SELECT
NELCal.LastDayOfWeek, S.FaciltyID,
PP.EncounterRecno, PP.ProcedureSequence,
S.[AdmissionDate], S.AdmissionConsultantName, S.AdmissionMethod,
s.LengthOfSpell,
year(S.[AdmissionDate]) as AdmYear,
month(S.[AdmissionDate]) as AdmMonth,
PP.[ProcedureDate],
year(PP.[ProcedureDate]) as ProcYear,
month(PP.[ProcedureDate]) as ProcMonth,
S.Age, S.[AdmissionSpecialty(Function)],
S.[PatientClass], s.[AdmissionSpecialty(Main)],
PP.[ProcedureCode], PP.[Procedure]
FROM
[WHREPORTING].[APC].[Spell] S
LEFT JOIN
[WHREPORTING].[APC].[Episode] E ON S.SourceSpellNo = E.SourceSpellNo
LEFT JOIN
[WHREPORTING].[APC].[AllProcedures] PP ON E.EpisodeUniqueID = PP.EpisodeSourceUniqueID
LEFT JOIN
WHREPORTING.APC.Patient P ON P.EncounterRecno = S.EncounterRecno
JOIN
WHREPORTING.LK.Calendar AS NELCal ON PP.ProcedureDate = NELCal.TheDate
AND pp.ProcedureDate between '05 dec 2016' and '06 dec 2016'
--and NELCal.LastDayOfWeek between DATEADD(DAY,-7*52,cast(GETDATE() as DATE))
--and DATEADD(DAY,-1,cast(GETDATE() as DATE))
WHERE
[AdmissionSpecialty(Function)] = 'Breast Surgery') f
group by
PatientClass) g
這可能是因爲你已經有了一個GROUP BY,但有可能是沒什麼組 - 如果你將組帶走,是否有行要分組? – Cato
您正在調用可能不包含任何記錄的派生表上的COUNT聚合;這將導致沒有返回。 – Chriz
您需要選擇您感興趣的所有不同'PatientClass',然後將其添加到您選擇的所有記錄中,然後計算右邊的表(可能爲空 - 不計算空值),則可以獲得零對於零行「PatientClass」 - 卡託剛纔 – Cato