将不同标准的记录基础分组

时间:2016-01-07 07:17:27

标签: sql-server sql-server-2005

我有像下面这样的表格如何编写可行的代码。

code    type    date        amount
2001    Advance 01/01/2015  200 
3001    Advance 02/05/2015  0   
2001    Balance 12/30/2015  500 
3001    Balance 05/05/2015  200 
3002    Advance 01/03/2015  100 

我只需要选择收到余额的项目,总金额也需要全部显示:所有商品代码都有一个预付款和一个余额。但我需要检索只有两个记录存在否则提前和收到平衡。如果两个记录都在那里,那么它应该显示'关闭'

code    type    date        amount
2001    Closed  12/30/2015  700
3001    closed  05/05/2015  200

1 个答案:

答案 0 :(得分:0)

我已经使用了旗帜式的东西来做到这一点,你可以尝试下面的查询

选择代码,'关闭',amt from(SELECT CODE,sum(CASE WHEN TYPE ='Advance'然后1当type ='Balance'然后2结束)flg, sum(amt)amt 从尝试 按代码分组)其中flg = 3;