以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- s ql 语句请教 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=146134) |
-- 作者:ljh29206 -- 发布时间:2020/2/17 11:59:00 -- s ql 语句请教 A 表 产品编号 , 预算开始日期, 预算结束日期, 总预算金额 B表 产品编号, 使用日期 , 实绩金额 如何得到C表 A. 产品编号 , A.预算开始日期, A.预算结束日期, A.总预算金额 , B. 总使用金额 [B表 ( 使用日期 在 开始 及 结束 之间的 实绩金额 汇总)] ,剩余预算金额(A.总预算金额- B.总使用金额) 麻烦老师帮忙
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/2/17 17:07:00 -- 试试 SE LECT SUM(isnull(金额合计,0)) AS 使用金额
|
-- 作者:ljh29206 -- 发布时间: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) 报错, 请问怎么修改呢 |
-- 作者:有点蓝 -- 发布时间:2020/2/17 20:01:00 -- 外层再套一个select |