按iSNULL功能分组

use*_*506 1 t-sql sql-server

我如何在这里解决问题.

SELECT 
    Tcg.ProviderID,
    ISNULL(DATEDIFF(DAY , AEenc.StartDateTime , AEenc.EndDateTime),0) + ISNULL(DATEDIFF(DAY , IPenc.AdmissionDate , IPenc.ENDDate),0) as 'IPBedDays'
FROM #TargetClientGroup Tcg
INNER JOIN AEncounterDetail as AEenc
    ON AEenc.ProviderID = Tcg.ProviderID
INNER JOIN [PEncounterDetail] as IPenc
    ON IPenc.ProviderID = Tcg.ProviderID
--WHERE AEenc.StartDateTime >= @ReportDate
GROUP BY Tcg.ProviderID
Run Code Online (Sandbox Code Playgroud)

我收到错误,因为它不包含在聚合函数或GROUP BY子句中.

Ste*_*cke 6

ISNULL is not an aggregation function, and as a consequence, when you're grouping it won't be performing as expected. I would recommend SUM, MIN, MAX, or AVG wrapped around your ISNULL statement dependant on what you're trying to achieve with your query.