MSSQL 相当困难的SQL?
描述:
有两个表,一个头,一个体,体通过ParentId来关联头,关联表
Body通过ParentId关联Head的ID
Head通过DealerId关联Dealer的ID
Body通过ProductId关联Product的ID
如表:
Head表,下面描述表结构和记录
ID Code Name reciptDate DealerID
1 001 单据1 2009-1-1 1
2 002 单据2 2009-1-2 1
3 003 单据3 2009-1-3 1
4 004 单据4 2009-1-4 2
5 006 单据5 2009-1-5 2
6 006 单据6 2009-1-6 2
Body表,下面描述表结构和记录
ID ProductId ParentId
1 1 1
2 2 1
3 3 1
4 1 2
5 2 2
6 3 2
7 7 3
8 4 3
9 9 3
10 10 4
11 1 4
12 12 5
13 2 5
14 14 6
15 3 6
Dealer表,下面描述表结构和记录
ID Name
1 经销商1
2 经销商2
Product表,下面描述表结构和记录
ID Name
1 产品1
2 产品2
3 产品3
4 产品4
5 产品5
6 产品6
7 产品7
8 产品9
9 产品9
10 产品10
11 产品11
12 产品12
13 产品13
14 产品14
15 产品15
问题以及描述:
取每个经销商的每个商品比系统时间小倒序(getdate())的第一个记录
假设给定的时间是2009-1-5日
则结果为
DealerName ProductName ReciptDate
经销商1 商品7 2009-1-3
经销商1 商品4 2009-1-3
经销商1 商品9 2009-1-3
经销商2 商品10 2009-1-4
经销商2 商品1 2009-1-4