Foxtable(狐表)用户栏目专家坐堂 → s ql 语句请教


  共有1880人关注过本帖树形打印复制链接

主题:s ql 语句请教

帅哥哟,离线,有人找我吗?
ljh29206
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1359 积分:12004 威望:0 精华:0 注册:2012/3/5 11:32:00
s ql 语句请教  发帖心情 Post By:2020/2/17 11:59:00 [只看该作者]

 A 表       产品编号  ,   预算开始日期, 预算结束日期, 总预算金额

 B表        产品编号,     使用日期  ,   实绩金额



如何得到C表

A. 产品编号  ,   A.预算开始日期, A.预算结束日期, A.总预算金额 , B. 总使用金额 [B表 ( 使用日期 在 开始 及 结束 之间的 实绩金额 汇总)] ,剩余预算金额(A.总预算金额- B.总使用金额)

麻烦老师帮忙

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106132 积分:539771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/17 14:15:00 [只看该作者]

select *,总预算金额 - 总使用金额 as 剩余预算金额 from (select a.*,(select sum(b.实绩金额) from B表 as b where b.产品编号 = a.产品编号  and b.使用日期 >= a.预算开始日期 and b.使用日期 <= a.预算结束日期) as 总使用金额 from A表 as a) as c

 回到顶部
帅哥哟,离线,有人找我吗?
ljh29206
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1359 积分:12004 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2020/2/17 16:42:00 [只看该作者]

SE LECT     预算金额,
                          (SE LECT     SUM(金额合计) AS 使用金额
                            FROM          dbo.YW_采购申购入库单 AS b
                            WHERE      (科目代码 = a.科目代码) AND (部门关系 = a.部门关系) AND (入库日期 >= a.预算开始日期) AND (入库日期 <= a.预算结束日期)) AS 使用金额
FROM         dbo.CW_预算管理单明细 AS a




得到的 使用金额 的结果 为 null  不是 0
[此贴子已经被作者于2020/2/17 16:51:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106132 积分:539771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/17 17:07:00 [只看该作者]

试试

SE LECT     SUM(isnull(金额合计,0)) AS 使用金额

 回到顶部
帅哥哟,离线,有人找我吗?
ljh29206
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1359 积分:12004 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2020/2/17 17:32:00 [只看该作者]

 篮版  ,   还是不行   一样为 null  ,

  语句是没有问题的,  有数值的能计算,

但没数据的显示不出来   0 值  。


                          (SE LECT     SUM(金额合计) AS 使用金额
                            FROM          dbo.YW_采购申购入库单 AS b
                            WHERE      (科目代码 = a.科目代码) AND (部门关系 = a.部门关系) AND (入库日期 >= a.预算开始日期) AND (入库日期 <= a.预算结束日期)) AS 使用金额

这段 代码   我试过 变成



                isnull(          (SE LECT     SUM(isnull(金额合计,0)) AS 使用金额
                            FROM          dbo.YW_采购申购入库单 AS b
                            WHERE      (科目代码 = a.科目代码) AND (部门关系 = a.部门关系) AND (入库日期 >= a.预算开始日期) AND (入库日期 <= a.预算结束日期)) AS 使用金额,0)

报错, 请问怎么修改呢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106132 积分:539771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/17 20:01:00 [只看该作者]

外层再套一个select

select 列1,列2,...,isnull(使用金额,0) as 使用金额 from (原来的sql) as a

 回到顶部