当日期在两个给定值之间时,获得所有的总和

时间:2016-07-27 10:45:45

标签: mysql

我有一张这样的表:

date          val

2016-1-1       8
2016-2-1       10
2016-1-2       30
2016-1-3       30

现在,我有两个日期来自另一个表格,我们称之为fromdatetwo 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

但当然这并不正确。

1 个答案:

答案 0 :(得分:0)

无法在连接表达式中传递日期,但在子查询中,您将获得总和:

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查询会有所帮助。