我正在尝试在交易表上写一个查询,其中有各种商品的买卖交易。试图建立一个查询,在给定的日期,我想知道我持有的每个项目有多少。这一部分已经实现。
现在的问题是,我写的查询返回一个已经购买并已经销售的商品列表,因此在给定日期该商品显示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上构建它。
感谢您的帮助。
由于
答案 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