我有一個表的命令是看起來像:SQL和數據
T1
+-----------+---------+------------+
| client ID | order q | order date |
+-----------+---------+------------+
| 01 | 100 | 01-02-2016 |
| 01 | 350 | 03-05-2016 |
+-----------+---------+------------+
我必須跟銷售第二張表:
T2
+-----------+-------+------------+
| client ID | sales | sales date |
+-----------+-------+------------+
| 01 | 50 | 03-02-2016 |
| 01 | 50 | 10-02-2016 |
| 01 | 300 | 04-05-2016 |
| 01 | 50 | 15-05-201 |
+-----------+-------+------------+
其目的是讓SUM
的銷售額超過第一訂單日期且小於第二訂單日期:
結果
+-----------+---------+-------+
| cliend ID | order q | sales |
+-----------+---------+-------+
| 01 | 100 | 100 |
| 01 | 350 | 350 |
+-----------+---------+-------+
的第一個想法是讓訂單日期評級喜歡
DENSE_RANK() OVER(PARTITION BY [client ID] ORDER BY [order date] ASC) AS R
然後做這樣的事情:
select
client ID,
order q,
sum (sales) as sales
from
t2
left outer join
t2.client ID = t1.client ID
where
[sales date] >= [order date]
and [sales date] <= [order date] in (select [order date]
from t2
where (R < (R+1)))
group by
client ID, order q
我知道這是錯的,但是這是在我腦海中的邏輯。
你可以給我一些想法如何做到這一點?
請提供測試數據以及 – TheGameiswar