我想返回自当前广告订单(发票)开始以来为多个客户提供的每日支出总和。遗憾的是,每个客户端的当前广告订单的开始日期不同。
我没有任何问题来拉取每个客户端的开始日期,但我不知道如何创建一种查找到具有与每个客户端关联的开始日期的表。
假设我有一张表IO
:
ClientId StartDate
1 2014-10-01
2 2014-10-04
3 2014-09-17
...
另一个表格,每个客户端都有DailySpend
:
Date Client Spend
2014-10-01 1 2325
2014-10-01 2 195
2014-10-01 3 434
2014-10-02 1 43624
...
现在,我只想检查每个客户从目前的订单开始日期到昨天我们花了多少钱。
答案 0 :(得分:0)
select *
from IO
join DailySpend
on IO.ClientId = DailySpend.Client
and DailySpend.Date <= IO.StartDate
and datediff(dd, getdate(), DailySpend.Date) <= 1
select DailySpend.Client, sum(DailySpend.Spend)
from IO
join DailySpend
on IO.ClientId = DailySpend.Client
and DailySpend.Date >= IO.StartDate
and datediff(dd, getdate(), DailySpend.Date) <= 1
group by DailySpend.Client
您可能需要在日期中翻转日期顺序
答案 1 :(得分:0)
可能是这样的
SELECT a.client,
Sum(b.spend)
FROM [IO] a
JOIN DailySpend b
ON a.id = b.id
and a.startdate=>b.date
WHERE b.date <= Dateadd(dd, -1, Cast(Getdate() AS DATE))
GROUP BY client