-1

エラーの原因がわかりません。どんな助けでもいただければ幸いです

SELECT ( SUM(DWXP050.Premp) )
FROM   DWXP050
       LEFT JOIN [DWXP050 GL Class]
         ON [DWXP050 GL Class].Policy = DWXP050.Policy
            AND [DWXP050 GL Class].CDDESC = DWXP050.CDDESC
            AND [DWXP050 GL Class].TRDATE = DWXP050.TRDATE
            AND [DWXP050 GL Class].[Effective Date] = DWXP050.EFFDTE
            AND [DWXP050 GL Class].ASLOB = DWXP050.ASLOB
            AND [DWXP050 GL Class].AGENT = DWXP050.AGENT
WHERE  (( ( DWXP050.TRANS ) = '10'
           OR ( DWXP050.TRANS ) = '20' ))
GROUP  BY ( SUM(DWXP050.Premp) )
HAVING ( ( ( [DWXP050 GL Class].AGENT ) = '00000BP001' )
         AND ( ( [DWXP050 GL Class].[Effective Date] ) >= '20130201'
               AND ( [DWXP050 GL Class].[Effective Date] ) <= '20130228' )
         AND ( ( [DWXP050 GL Class].ASLOB ) = '170'
                OR ( [DWXP050 GL Class].ASLOB ) = '180' )
         AND ( ( [DWXP050 GL Class].[Product] ) <> 'CUP' )
         AND ( ( [DWXP050 GL Class].CDDESC ) = 'PEST CONTROL SERVICES' )
         AND ( ( [DWXP050 GL Class].TRDATE ) <= '20130401' ) ) 
4

2 に答える 2

0

GROUP BY 句に集計関数があり、HAVING 句に非集計フィルターがあります。グループ化したいと思われる同じ列で SUM を行っているため、グループを取り出して、HAVING ステートメントを WHERE 句に移動するだけです。

SELECT SUM(DWXP050.Premp)
FROM   DWXP050
       LEFT JOIN [DWXP050 GL Class]
         ON [DWXP050 GL Class].Policy = DWXP050.Policy
            AND [DWXP050 GL Class].CDDESC = DWXP050.CDDESC
            AND [DWXP050 GL Class].TRDATE = DWXP050.TRDATE
            AND [DWXP050 GL Class].[Effective Date] = DWXP050.EFFDTE
            AND [DWXP050 GL Class].ASLOB = DWXP050.ASLOB
            AND [DWXP050 GL Class].AGENT = DWXP050.AGENT
WHERE  
    ( DWXP050.TRANS  = '10'
           OR  DWXP050.TRANS  = '20' )
    AND [DWXP050 GL Class].AGENT  = '00000BP001' 
    AND [DWXP050 GL Class].[Effective Date] >= '20130201'
    AND [DWXP050 GL Class].[Effective Date] <= '20130228'
    AND ([DWXP050 GL Class].ASLOB  = '170'
        OR [DWXP050 GL Class].ASLOB = '180' )
    AND [DWXP050 GL Class].[Product] ) <> 'CUP'
    AND [DWXP050 GL Class].CDDESC = 'PEST CONTROL SERVICES'
    AND [DWXP050 GL Class].TRDATE <= '20130401' 
于 2013-06-25T19:25:01.020 に答える