0

次のコードがあります。

     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           

助けてください

4

1 に答える 1