以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]子查询语句中计算的写法 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149271) |
-- 作者:huangfanzi -- 发布时间:2020/4/27 19:11:00 -- [求助]子查询语句中计算的写法 "(S elect Sum(数量) from {库存} b where a.编号 = b.合同编号) As 已执行,(数量 - (S elect Sum(数量) from {库存} b where a.编号 = b.合同编号)) As 待执行, " 老师,上面语句是子查询语句,能正常得到结果,可我感觉这样写是不是浪费效率了,明明已执行已经算出了,后面的语句为什么不能改写成: 数量 - 已执行 As 待执行
|
-- 作者:有点蓝 -- 发布时间:2020/4/27 20:43:00 -- 要再套一层,对于同一层,是无法知道子查询结果的 select *, 数量 - 已执行 As 待执行 from (select ....., (S elect Sum(数量) from {库存} b where a.编号 = b.合同编号) As 已执行,(数量 - (S elect Sum(数量) from {库存} b where a.编号 = b.合同编号)) As 待执行, .... from xxxxx) as k
|
-- 作者:huangfanzi -- 发布时间:2020/4/27 23:05:00 -- 已解决,加个 ISNULL 就行了!! 老师,遇到由于没有 “已执行”,而导致 “待执行” 为空的情况应该如何办?正常情况下,如果已执行为空时,就应该是0下面是我的查询语句: ppyf = "(S elect Sum(数量) from {库存} b where a.编号 = b.合同编号) As 已执行,(数量 - (S elect Sum(数量) from {库存} b where a.编号 = b.合同编号)) As 待执行, " zd = "属性,类型,类别,签订日期,编号,附属编号,我方主体代码,我方主体,我方简称,对方主体代码,对方主体,对方简称,品名,规格,单位,数量," & ppyf & "单价,金额,税率,交割方式,交割起始日期,交割结束日期,交割库区代码,交割库区,交割库区主体,交割库区简称,运输方式,单证员,业务员,附件,备注,状态,执行状态" t.Fill("s elect " & zd & " From {合同} As a Where " & flt & " ORDER BY a.编号" ,"ShcsErpSql",True) [此贴子已经被作者于2020/4/27 23:07:33编辑过]
|