sql日期之间的销售额

时间:2017-11-22 14:00:10

标签: sql date sum range ansi-sql

图像解释了一切。我的目标是使用sql的最后一个表。

我将用一个例子解释逻辑。

表1显示了预期销售额。例如,第22条应仅在1月1日至4月1日之间出售。为了简单起见,我们假设商店每天都开放。

表2显示了每篇文章的每日销售额。例如文章被卖1 janv 2 janv 3 janv 4 janv。但是,对于第22条而言,janv不在[1 janv to 3 janv]范围内。因此,为了得到第22条的销售总额,我们应该省略4月1日。因此,第22条的计算是2 + 4 + 5 = 11。

enter image description here

DataType

表1

  • artNo:int
  • 来自:date
  • planned_to:date

表2

  • artNo:int
  • 日期:日期
  • 销售:浮动

2 个答案:

答案 0 :(得分:2)

这样的事情:

SELECT
    t1.artNo
    , t1.[from]
    , t1.planned_to
    , SUM(t2.sales) total
FROM
    table1 t1
    JOIN table2 t2 ON
        t1.artNo = t2.artNo
        AND t2.day >= t1.[from]
        AND t2.day <= t1.planned_to
GROUP BY
    t1.artNo
    , t1.[from]
    , t1.planned_to

答案 1 :(得分:0)

SELECT t1.artNO
    ,t1.
    ,t1.planned_to
    ,SUM(sales) as Total
FROM table1 t1
INNER JOIN table2 t2 ON t1.artNo = t2.artNo
GROUP BY t1.artNO
    ,t1.
    ,t1.planned_to