次のコードがあります。
SELECT
ehrprg.ReportName
,ehrprg.AnnualGoalServiceMinutes
,COUNT(DISTINCT ct.[ClientFK]) AS [UnduplicatedClients]
FROM
[WH].[Fact].[EHRClinicalTransaction] ct
INNER JOIN [Dimension].EHRProgram ehrprg ON
ct.ProgramFK = ehrprg.WHID
WHERE
ehrprg.AnnualGoalServiceMinutes > 0
GROUP BY
ehrprg.ReportName
,ehrprg.AnnualGoalServiceMinutes
ORDER BY
ReportName
そして結果:
しかし、 [ReportName]列に'SM NV' (2 行ではなく) と 'SM REACH' 行 (3 行ではなく) を 1 つだけ持つ必要があり、[ServiceMinutes]を要約します。
SUM(ehrprg.AnnualGoalServiceMinutes)を使用すると、 「データ型 int に変換する算術オーバーフロー エラー」エラーが発生します。
次に、SUM(CONVERT(BIGINT, ehrprg.AnnualGoalServiceMinutes)) を試しましたが、次の結果が得られました。
まだグループ化されておらず (AnnualGoalServiceMinutes を要約していません)、いくつかの値が得られますが、理解できません
私の目標は、代わりに見ることです-
ReportName AnnualGoalServiceMin
SM NV 197885
SM NV 348654
SM REACH 40000
SM REACH 80000
SM REACH 380000
AnnualGoalServiceMin の合計を期待します。
ReportName AnnualGoalServiceMin
SM NV 546539
SN REACH 500000
助けてください