1

各結果の合計を加算して、最終結果が次のような表になるようにするにはどうすればよいですか?

日付| Sum1 | Sum2
1108 | 合計1| 合計2
等
DECLARE @StartDate      int
DECLARE @EndDate  int

SET         @StartDate  = XXXXXX
SET         @EndDate    = XXXXXX

SELECT                  ODATE,
                        SUM(CASE WHEN [COLUMN1] IN (X,X) THEN 1 ELSE 0 END)+ SUM(CASE WHEN [COLUMN3] IN (X) THEN 1 ELSE 0 END) AS SUM1,
                      SUM(CASE WHEN [COLUMN2] IN (X,X) THEN 1 ELSE 0 END) AS SUM2


FROM              [Db1]..
WHERE             ODATE Between @StartDate And @EndDate

UNION ALL
SELECT                  ODATE,
                        SUM(CASE WHEN [COLUMN1] IN (X,X) THEN 1 ELSE 0 END)+ SUM(CASE WHEN [COLUMN3] IN (X) THEN 1 ELSE 0 END) AS SUM1,
                      SUM(CASE WHEN [COLUMN2] IN (X,X) THEN 1 ELSE 0 END) AS SUM2        

FROM              [Db2]..
WHERE             ODATE Between @StartDate And @EndDate

UNION ALL
SELECT                  ODATE,
                        SUM(CASE WHEN [COLUMN1] IN (X,X) THEN 1 ELSE 0 END)+ SUM(CASE WHEN [COLUMN3] IN (X) THEN 1 ELSE 0 END) AS SUM1,
                      SUM(CASE WHEN [COLUMN2] IN (X,X) THEN 1 ELSE 0 END) AS SUM2        

FROM              [Db3]..
WHERE             ODATE Between @StartDate And @EndDate
4

1 に答える 1

1

選択したものをラップし、その上でGROUPBYを実行します

DECLARE @StartDate      int
DECLARE @EndDate  int

SET         @StartDate  = XXXXXX
SET         @EndDate    = XXXXXX

SELECT ODATE, SUM(SUM1) Sum1, SUM(SUM2) Sum2
(
  ... your big select ...
) X
GROUP BY ODATE;
于 2012-11-08T22:06:04.387 に答える