Mysql将多个列值与日期条件相加

时间:2015-11-28 20:46:27

标签: mysql

我有一个包含以下列的客户表,其中包含每个月每月购买的数据。

success <- !(TRUE %in% check)

现在我想查找2015年5月15日至2015年6月15日期间每位客户购买的总数量。

我是mysql的新手,所以不知道如何继续前进。

提前致谢

1 个答案:

答案 0 :(得分:0)

在一个月中的每一天使用列来存储值都不是一个好主意。但有时我们会陷入糟糕的数据格式,以下是您如何获得所需的计数:

SELECT ID, SUM(qty)
FROM (
  SELECT
    ID,
    MAKEDATE(2015,1) + INTERVAL (month-1) MONTH AS dt,
    DAY1 AS qry
  FROM yourtable
  UNION ALL
  SELECT
    ID,
    MAKEDATE(2015,1) + INTERVAL (month-1) MONTH AS dt + INTERVAL 1 DAY,
    DAY2 AS qry
  UNION ALL
  SELECT
    ID,
    MAKEDATE(2015,1) + INTERVAL (month-1) MONTH AS dt + INTERVAL 2 DAY,
    DAY3 AS qry
  FROM yourtable
  UNION ALL
  ...
  until day 31
  ...
) s
WHERE
  dt>='2015-04-15' AND dt<='2015-06-15'
GROUP BY ID

我使用子查询来规范化数据结构,然后我对外部查询进行计数,一个简单的where子句和group by将给出你需要的结果。

相关问题