0

3つの一意のIDに基づいて、同じテーブルから3つの列を合計したいと思います。

If id="1" sum(area1) 
If id="2" sum(area2)
if id="3" sum(area3)

テーブルデータ:

id area1 area2 area3
1   10     2    10
1    1     10    10
2    1     10    10
3    1     10    10
3  10     2     10

出力は次のようになります。

id1 = 43 id2 = 21 id3 = 43

Select houseID, sum(area1), b.sum(area2), c.sum(area3) FROM table1, table1 b, table1 c
WHERE table1.id="1" or b.id = "2" or c.id="3"
4

2 に答える 2

3

編集:

出力を編集したことを考慮して、次のことを行う必要があります。

select Id, sum(area1 + area2 + area3) as 'Sum'
from yourTable
--where id in (1,2,3) if you have more id's and just want those
group by Id
于 2012-07-28T00:18:38.943 に答える
0
Select houseID, 
       sum(IF id = 1 THEN area1 ELSE 0 END) as [a],
       sum(IF id = 2 then area2 ELSE 0 END) as [b],
       sum(IF id = 3 then area3 ELSE 0 END) as [c]
FROM table1
WHERE id in (1,2,3) -- not needed might be faster
于 2012-07-28T00:21:24.903 に答える