Sql 连接来自两个不同查询的行

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 日期是唯一的,但不总是连续的。编号是唯一的,并且与每个更高日期的递增编号串联 我希望得到当前日期和前一日期的销售额之间的差异 没有 日期 出售

我有一个带有id、日期和销售字段的表
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

您正在使用哪些RDBMS?