sql 语句,关于分组和求和的,困难有关问题啊求高手
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
十分感谢!
------解决方案--------------------
有一主表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 行)
*/