我有一张表sales_table
,其中包含ID,日期和销售字段。
没有日期的销售
-------------------------------------------------- -
1 - 扬万
2 3-JAN 12500
3 4月8000
4 5-一月12000
5 8月万
“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”为100 13-Mar 4000
日期是唯一的,但并不总是串联。 no是唯一的,并且与每个更高日期的递增no串联。
我希望获得当前和上一个日期的销售额之间的差异。
之类的东西无 日期 销售 DIFF
-------------------------------------------------- ----------------------------------------
1 1月 万 0
2 3月 12500 2500
3 4月 8000 -4500
4 5月 12000 4000
五 8月 万 -2000
我正在使用sql查询 -
select t1.no,t1.date,t1.sales (t1.sales-2.sales) as diff
from sales_table as t1,sales_table as t2
where(t1.no=t2.no+1) order by t1.date
除了我从第2号开始录音以外,这种方法很好。
所以我写了另一个sql查询 -
select no,date,sales,sales-sales as diff
from sales_table
where(no=1)
输出为 - 1月1日,1月1日,10000日。
如何从这两个查询中加入行?
答案 0 :(得分:0)
根据您的数据库,有几种不同的选项。一种选择是修改现有查询以使用OUTER JOIN
:
select t1.no,t1.date,t1.sales,(t1.sales-coalesce(t2.sales,t1.sales)) as diff
from sales_table as t1
left join sales_table as t2 on t1.no=t2.no+1
order by t1.date