Sql 连接来自两个不同查询的行
我有一个带有id、日期和销售字段的表Sql 连接来自两个不同查询的行,sql,join,rows,Sql,Join,Rows,我有一个带有id、日期和销售字段的表sales\u table nodatesales ---------------------------------------------------- 11-1月10000日 23-1月12500日 34-JAN8000 45-12000年1月 58-10000 “”“”“”“”“”“”10013-Mar4000 日期是唯一的,但不总是连续的。编号是唯一的,并且与每个更高日期的递增编号串联 我希望得到当前日期和前一日期的销售额之间的差异 没有 日期 出售
sales\u table
nodatesales----------------------------------------------------
11-1月10000日
23-1月12500日
34-JAN8000
45-12000年1月
58-10000
“
”
“
”
“
”
“
”
“
”
“
”
10013-Mar4000
日期是唯一的,但不总是连续的。编号是唯一的,并且与每个更高日期的递增编号串联 我希望得到当前日期和前一日期的销售额之间的差异 没有 日期 出售 差异
------------------------------------------------------------------------------------------
1 1-1月 10,000 0
2. 一月三日 12,500 2500
3. 一月四日 8,000 -4500
4. 一月五日 12,000 4000
5. 一月八日 10,000 -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
如何连接这两个查询中的行?根据您的数据库,有两个不同的选项。一个选项是修改现有查询以使用外部连接:
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