玉祥平台客服-15087858732

标题: oracle数据列相同的,怎么合并列,并进行减法运算 [打印本页]

作者: caixuqad    时间: 2020-5-8 17:07

作者: caixuqad    时间: 2020-5-9 17:16

作者: caixuqad    时间: 2020-5-15 17:33

作者: 陈晓龙    时间: 2020-6-18 15:22
标题: oracle数据列相同的,怎么合并列,并进行减法运算
下面是俺写的sql语句,望大神解答!
---------------------------------------------------------------------------------------------------
--挂账金额=费用总额-优惠金额-实收金额
--毛利=费用总额-优惠金额-工时费-进价

select a.业务编号,
       a.制单日期,
       a.车主,
       a.车牌号码,
       b.费用总额,
       b.工时费,
       b.配件费 材料费,
       sum(b.优惠金额)优惠金额,
       sum(b.实收金额) 实收金额,
       sum(b.进价) 材料成本,
       --挂账金额=费用总额-优惠金额-实收金额
       b.费用总额 - nvl(b.优惠金额, 0) - nvl(b.实收金额, 0) 挂账金额,
       --毛利=费用总额-优惠金额-工时费-进价
       b.费用总额 - nvl(b.优惠金额, 0) - nvl(b.工时费, 0) - nvl(sum(b.进价), 0) 毛利
  from S4_前台接车 a, S4_维修结算 b
where a.id = b.项目id
group by a.业务编号,
          a.制单日期,
          a.车牌号码,
          a.车主,
          b.费用总额,
          b.工时费,
          b.配件费,
          b.优惠金额,
          b.实收金额,
          b.进价


QQ图片20150818151417.png (20.42 KB, 下载次数: 355)

QQ图片20150818151417.png

作者: 暴打手机    时间: 2020-6-18 15:36
再在外面套一层select
select 要显示的字段, max(费用总额)-sum(实收金额)-max(优惠金额) as 挂账金额 ,max(费用总额)-max(优惠金额)-max(工时费)-max(进价) 毛利 from (select a.业务编号,
       a.制单日期,
       a.车主,
       a.车牌号码,
       b.费用总额,
       b.工时费,
       b.配件费 材料费,
       sum(b.优惠金额)优惠金额,
       sum(b.实收金额) 实收金额,
       sum(b.进价) 材料成本,
       --挂账金额=费用总额-优惠金额-实收金额
       b.费用总额 - nvl(b.优惠金额, 0) - nvl(b.实收金额, 0) 挂账金额,
       --毛利=费用总额-优惠金额-工时费-进价
       b.费用总额 - nvl(b.优惠金额, 0) - nvl(b.工时费, 0) - nvl(sum(b.进价), 0) 毛利
  from S4_前台接车 a, S4_维修结算 b
where a.id = b.项目id
group by a.业务编号,
          a.制单日期,
          a.车牌号码,
          a.车主,
          b.费用总额,
          b.工时费,
          b.配件费,
          b.优惠金额,
          b.实收金额,
          b.进价) group by 要显示的字段
作者: 陈晓龙    时间: 2020-6-18 16:38
完美的解答了俺的问题!




欢迎光临 玉祥平台客服-15087858732 (http://bbs.delit.cn/) Powered by Discuz! X3.2