1

ここで問題ごとにグループを解決するにはどうすればよいですか。

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

集計関数にも GROUP BY 句にも含まれていないため、エラーが発生します。

4

2 に答える 2

6

ISNULLは集計関数ではないため、グループ化すると期待どおりに機能しません。、、、、またはクエリで達成しようとしていることに応じて、ステートメントをラップすることをお勧めSUMします。MINMAXAVGISNULL

于 2013-09-25T10:05:11.900 に答える
0

これを試してみてください -

SELECT  Tcg.ProviderID
    ,   IPBedDays = SUM(ISNULL(DATEDIFF(DAY, AEenc.StartDateTime, AEenc.EndDateTime), 0) + ISNULL(DATEDIFF(DAY, IPenc.AdmissionDate, IPenc.EndDate), 0))
FROM #TargetClientGroup Tcg
JOIN AEncounterDetail AEenc ON AEenc.ProviderID = Tcg.ProviderID
JOIN [PEncounterDetail] IPenc ON IPenc.ProviderID = Tcg.ProviderID
--WHERE AEenc.StartDateTime >= @ReportDate
GROUP BY Tcg.ProviderID
于 2013-09-25T10:20:07.943 に答える