读书人

sql 语句关于分组和求和的困难有关

发布时间: 2013-05-02 09:39:29 作者: rapoo

sql 语句,关于分组和求和的,困难问题啊!求高手!
有一主表A
id name
1 a
2 b

明细表B
id A_id type amount price
11 1 x 10 10
12 1 x 10 10
13 1 y 10 10
14 2 y 10 10

求一视图v (sum_amount 只计算type=x, sum_money需计算全部,如下所示)
A_id sum_amount sum_money
1 20 300
2 0 100

十分感谢!
[解决办法]


declare @a table(id INT, A_id INT, type VARCHAR(20), amount INT, price INT)
insert @a select 11 , 1 ,'x', 10 , 10
union all select 12 , 1 ,'x', 10 , 10
union all select 13 , 1 ,'y', 10 , 10
union all select 14 , 2 ,'y', 10 , 10

SELECT A_id, SUM(CASE WHEN TYPE='x' THEN amount ELSE 0 END),SUM(amount*price)
FROM @a
GROUP BY A_id

--result
/*A_id
----------- ----------- -----------
1 20 300
2 0 100

(所影响的行数为 2 行)

*/

读书人网 >SQL Server

热点推荐