我有两个SQL表。表1如下:
SALEREF
1 | 40303020
2 | 40303021
3 | 40303021
4 | 40303021
5 | 41210028
6 | 4120302701
7 | 41210030
8 | 4112700803
9 | 4112700803
10 | 41215030
11 | 41215026
12 | 41215026
13 | 41215026
14 | 41215026
15 | 41215026
16 | 41215026
17 | 41215026
18 | 41215027
19 | 41215027
20 | 41215027
表2(“LEDGER”)如下:
SALESREF SALEDATE
0 | 4081200201 | 20140804
1 | 40303020 | 20141015
2 | 40303021 | 20141017
3 | 40303021 | 20141017
4 | 40303021 | 20141017
5 | 41210028 | 20121214
6 | 4120302701 | 20130926
7 | 41210030 | 20130926
8 | 4112700803 | 20131107
9 | 4112700803 | 20131107
10 | 41215030 | 20120720
我正在寻找的是一行输出以下内容:
TotalDistinctSalesRefsInTable1 HighestSaleDateValueInTable2 (that has a matching value in table 1)
9 20141017
表1中不同SALESREF的总数和表2中的最新SALESDATE值。
我已尝试在查询中进行选择但很快发现了我的知识限制,虽然我知道我可以通过以下方式获得最新的整体销售日期:
SELECT MAX(LEDGER.SALEDATE) AS LAST_DATE FROM LEDGER
我只是需要把整个事情拼凑起来的帮助。
答案 0 :(得分:1)
您可以使用left join
,count
和max
来获得所需的结果
select count(distinct t1.salesref) as TotalDistinctSalesRefsInTable1,
ifnull(max(l.saledate),0) as HighestSaleDateValueInTable
from table1 t1
left join ledger l
on t1.salesref = l.salesref