2

テーブルからの複製の1つのセットを結合したいのですが、すべてではありません。

例:

acct    date     bal
--------------------
123   1/1/2013   40.00
123   1/1/2013   2.00
456   1/2/2013   50.00
456   1/1/2013   5.00
789   1/1/2013   10.00
789   1/1/2013   17.00

acct 123を1つの行だけに結合し、それらの行のバランスを合計したいのですが、残りは残しておきます。

必要な出力:

acct    date     bal
--------------------
123   1/1/2013   42.00
456   1/2/2013   50.00
456   1/1/2013   5.00
789   1/1/2013   10.00
789   1/1/2013   17.00

SQLServer2005での作業。

4

3 に答える 3

3
SELECT acct, date, SUM(bal)
FROM T
WHERE acct = 123

UNION

SELECT acct, date, bal
FROM T
WHERE acct <> 123
于 2013-01-15T20:50:10.120 に答える
3

GROUPBY句でCASEを使用する

SELECT acct, date, SUM(bal) AS bal
FROM dbo.tets73
GROUP BY acct, date, CASE WHEN acct != 123 THEN bal END

SQLFiddleのデモ

于 2013-01-15T21:46:35.497 に答える
2
 select acct, date, sum(bal) from table where acct = 123
 union
 select acct, date bal from table where acct <> 123
于 2013-01-15T20:44:18.430 に答える