我有一个这样的表:
date val
2016-1-1 8
2016-2-1 10
2016-1-2 30
2016-1-3 30
现在,我有两个来自不同表的日期,我们称它们为
fromdate
和two date
如果fromdate是1,
2016-1-1
并且Todate是2016-1-2
,我需要8 + 30 = 38作为最终值我要检查一下
所有这些值的SUM(val)日期对应于fromdate和twodate之间。
我尝试了这个:
SELECT nr.sku AS ParentSKU
SUM(gasessiondata.sessions) as visitsWhenSKUWasOnline
FROM
Erp.new_ranking nr
LEFT JOIN
Temp.NumberOfDaysOnline ndo
ON
ndo.sku = nr.sku
JOIN
gadb.gasessiondata gasessiondata
ON 1=1
WHERE
ndo.FromDate Is NOT NULL
AND
ndo.ToDate IS NOT NULL
AND
gasessiondata.date >= ndo.FromDate
AND
gasessiondata.date <= ndo.ToDate
GROUP BY nr.sku
但是这当然是不正确的。
最佳答案
无法在连接表达式中传递日期,但是在子查询中,您将获得总和:
SELECT ndo.sku ParentSKU,
(
SELECT SUM(gasessiondata.sessions) as s
FROM gasessiondata
gasessiondata.date >= ndo.FromDate
AND
gasessiondata.date <= ndo.ToDate
) as visitsWhenSKUWasOnline
FROM Temp.NumberOfDaysOnline ndo
我不了解您的表结构,并且表没有清晰描述,但是我认为Adobe查询会有所帮助。