0

我的帖子

个人中心

设置

  发新话题
怎么在表达式列上添加过滤条件?,我希望在       (sum(d.goods_count) - s.stock_num) as 危险系数    这一列添加大于0的过滤条件,但是在where后面加会报错,如何解决?代码如下:
select s.spec_no as 商家编码,s.goods_name as 货品名称,s.spec_name as 规格名称,sum(d.goods_count) AS 最近45天,s.stock_num as 库存量,(sum(d.goods_count) - s.stock_num) as 危险系数
from Stock as s
left join TradeStockOutDtl as d
  --出库明细单详表

on s.goods_no = d.goods_no
left join  TradeStockOutMain as m                 --出库明细单主表
on  d.stockout_id = m.stockout_id
where s.spec_name = d.spec_name and DateDiff(DAY, m.consign_time, GetDate()) <= 45(在这里添加(sum(d.goods_count) - s.stock_num) as 危险系数>0报错,该如何设置这一条件?
group by s.spec_no,s.goods_name,s.spec_name,s.stock_num



条件改为
sum(d.goods_count) > s.stock_num



having了解一下



sum是跑完生成的结果,简单来说,可以再包一层查询:

select * from (你上面这段) where + 加这里



我的51CTO博客

SQL Server MCITP, MVP, MCT, DBA
where条件里要把 as 危险系数 去掉



‹‹ 上一贴:sql server数据库死锁排错   |   下一贴:请教大神们,我遇到这样的问题,求解,急急急 ... ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2019 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com