类型 客户简称 出货日期 金额汇整
加工订单 湖南天下 2004-9 3000
加工订单 深正黃上 2004-9 8000
收款单 湖南天下 2004-9 1128
收款单 湖南信息 2004-10 10100
收款单 湖南信息 2004-11 200
收款单 深圳天经 2004-10 300
收款单 深正黃上 2004-9 1600
销货退回 湖南天下 2004-9 1400
销货退回 深正黃上 2004-9 12000
这样一个数据。我想对这三个数据进行加减也就是说。相同月份+相同公司汇总。欠款=加工订单的金额-收款单-销货退回 这样的SQL要怎么样写。谢谢了
加工订单 湖南天下 2004-9 3000
加工订单 深正黃上 2004-9 8000
收款单 湖南天下 2004-9 1128
收款单 湖南信息 2004-10 10100
收款单 湖南信息 2004-11 200
收款单 深圳天经 2004-10 300
收款单 深正黃上 2004-9 1600
销货退回 湖南天下 2004-9 1400
销货退回 深正黃上 2004-9 12000
这样一个数据。我想对这三个数据进行加减也就是说。相同月份+相同公司汇总。欠款=加工订单的金额-收款单-销货退回 这样的SQL要怎么样写。谢谢了
,sum(case when 类型='加工订单' then 金额汇整 else 0 end)
-sum(case when 类型='收款单' then 金额汇整 else 0 end)
-sum(case when 类型='销货退回' then 金额汇整 else 0 end) as 欠款
from yourtable
group by 客户简称,出货日期
select SUM(case 类型 when '加工订单' then 金额汇整 else -金额汇整 end),客户简称,出货日期 from T group by 客户简称,出货日期
((SELECT SUM(金额汇整) from tablename WHERE 出货日期=a.出货日期 AND 类型='加工订单')
-(SELECT SUM(金额汇整) from tablename WHERE 出货日期=a.出货日期 AND 类型='收款单')
-(SELECT SUM(金额汇整) from tablename WHERE 出货日期=a.出货日期 AND 类型='销货退回'))
AS 欠款
FROM tablename a GROUP BY a.客户简称
继续学习