我有一个mysql表,其组成如下:
invoice status value
1234 D 1250
1234 C 1250
2345 D 2300
3456 D 2500
4567 D 2000
4567 C 1250
我想显示它或像这样选择性地报告
invoice status value
2345 D 2300
3456 D 2500
4567 D 750
不会显示两个编号为1234的发票,因为它相等并且状态为D和K. 数字4567的两张发票仍然出现在一行中,值为750(由2000 - 1250 = 750形成)
我想使用SELECT命令但是很难做到, 请帮帮我,谢谢
答案 0 :(得分:0)
一些条件聚合应该做的伎俩
SELECT invoice,'D' as status,
SUM(case WHEN status='D' THEN value ELSE -value END) as sums
FROM t
GROUP BY invoice
HAVING sums>0