如何在DW中使MSSQL的空值字段参加计算得出正确计算列

scan30 2003-05-27 03:19:25
SELECT goods.dl, SUM(xs.sl * goods.lsj) AS xs, SUM(dc.sl * goods.lsj) AS dc,
SUM(dr.sl * goods.lsj) AS dr, SUM(zs.sl * goods.lsj) AS zs, SUM(zsth.sl * goods.lsj)
AS th, SUM(goods.kc * goods.lsj) AS kc,SUM(goods.kc * goods.lsj) +SUM(dr.sl * goods.lsj)+SUM(zs.sl * goods.lsj)-SUM(xs.sl * goods.lsj)-SUM(dc.sl * goods.lsj)-SUM(zsth.sl * goods.lsj) AS qmkc
FROM dc RIGHT OUTER JOIN
goods ON dc.spbh = goods.spbh LEFT OUTER JOIN
dr ON goods.spbh = dr.spbh LEFT OUTER JOIN
xs ON goods.spbh = xs.spbh LEFT OUTER JOIN
zs ON goods.spbh = zs.spbh LEFT OUTER JOIN
zsth ON goods.spbh = zsth.spbh
GROUP BY goods.dl

如果其中一个计算列字段为空,如何使最后一个汇总计算列字段得出正确计算值
...全文
48 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
andyzq 2003-05-27
  • 打赏
  • 举报
回复
在数据库表中为允许为null的字段设置默认值0,如果已经有数据为null,则使用case语句
进行处理,或者在datawindow中处理
tchatcha 2003-05-27
  • 打赏
  • 举报
回复
if(isnull(column_name),0,column_name)
liaolwj 2003-05-27
  • 打赏
  • 举报
回复
如果你是在SQL语句中进行处理,那就加个条件where colname is not null
JIANXIN_LU 2003-05-27
  • 打赏
  • 举报
回复
IsNull( columnaname, 0 )
Thinkinger 2003-05-27
  • 打赏
  • 举报
回复
对可以为null的数据列,要参加计算的!最好用isnull(columnname,0)约束以下,它的意思是如果为null的话,就默认为0
kingdomzhf 2003-05-27
  • 打赏
  • 举报
回复
sum(not isnull(aa))
sunxiaobo 2003-05-27
  • 打赏
  • 举报
回复
if(isnull(column_name),0,column_name)

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧