注册 登录
编程论坛 SQL Server论坛

SQL中的SUM筛选问题

不惑 发布于 2007-06-27 17:22, 1260 次点击
SELECT 生产批号,_
(select 商品名称 from 商品名称 where id= t.商品id) as 商品名称,_
(select 规格 from 商品名称 where id= t.商品id) as 规格,_
(select top 1 有效日期 from 入库记录 where 商品id=t.商品id and 生产批号=t.生产批号) as 有效日期,_
(sum(入库数量-出库数量)) as 库存量,_
商品ID_
FROM 入库记录 t _
where _
(select (sum(入库数量-出库数量)) as 库存量 from 入库记录 where 生产批号=t.生产批号 and 商品id=t.商品id group by 商品id,生产批号) > 0 _
and 有效日期-'" & Now & "' < 180 _
group by 商品id,生产批号 _
order by 有效日期
我的筛选就是会出错,如上所示,我想筛选出库存量大于零,并且有效日期小于180天的商品.可它就是有问题,现在的问题是把等于零的商品也选出来了,这个后面的条件中的>零要什么写?我想是这个位置的问题.
6 回复
#2
sky_yang_sky2007-06-28 16:52

那個條件沒有錯,我在我的表中用相同的語法作用完全正確,0的也不會顯示,樓主看看是不是別的地方的問題了

#3
sky_yang_sky2007-06-28 17:01

要不你把你的表貼出來看看。

#4
不惑2007-06-28 18:02

没错吗?那谢谢了,我再看看

#5
不惑2007-06-28 18:28
我发现问题的所在了.是我的group的问题
我的集合是这样的,先是"商品id",然后是"生产批号"原本是只要有生产批号就可以了,但会有不同商品而批号相同的可能,所以用了二个,以确保只有相同商品和批号时才形成集合.可我发现它好象并不是按我的意思型成了集合,它好象只按生产批号形成了集合,这个得什么用法?
#6
sky_yang_sky2007-06-29 16:01

絕對不是你說的GROUP BY的問題。這個我可以肯定。

#7
laoliu5152007-07-05 17:45
把表结构弄出来看看撒。
1