查询一组记录的总和大于零的查询

时间:2015-05-13 08:10:20

标签: sql sql-server-ce

我正在尝试在交易表上写一个查询,其中有各种商品的买卖交易。试图建立一个查询,在给定的日期,我想知道我持有的每个项目有多少。这一部分已经实现。

现在的问题是,我写的查询返回一个已经购买并已经销售的商品列表,因此在给定日期该商品显示0作为余额。我希望避免截至该特定日期的所有零余额项目。

我的查询看起来像这样。

Select 
    I.itemName, I.iID, 
    sum(case when Tr.Buy=1 then Tr.qty when Tr.Buy=0 then Tr.qty*-1 else 0 end) as TotalQty 
from 
    Trades Tr, ItemMast I
where 
    Tr.iID = I.iID 
    and I.iCode = '1253'
    and Tr.tDate <= '5/13/2015' 
group by 
    I.itemName, I.iID
order by 
    I.itemName, I.iID

我尝试修改添加Where TotalQty > 0的where子句,但它不起作用。

不确定如何解决这个问题。我试图在SQL Server CE上构建它。

感谢您的帮助。

由于

1 个答案:

答案 0 :(得分:3)

尝试在having子句中使用完整表达式,如下所示

Select I.itemName, I.iID, sum(case when Tr.Buy=1 then Tr.qty when Tr.Buy=0 then Tr.qty*-1 else 0 end) as TotalQty 
from Trades Tr,ItemMast I
where Tr.iID = I.iID 
and I.iCode = '1253'
and Tr.tDate<= '5/13/2015' 
group by I.itemName, I.iID
having sum(case when Tr.Buy=1 then Tr.qty when Tr.Buy=0 then Tr.qty*-1 else 0 end) > 0
order by I.itemName, I.iID