0

我可以使用下面的代码检索特定周内所有商品的总销售额/总销售额。

select week(real_pur_date) as week, itemcode, sum(quantity)
from sales
where week(real_pur_date) = week(20120620)
group by itemcode;

输出是:

+------+----------+---------------+
| week | itemcode | sum(quantity) |
+------+----------+---------------+
|   25 | KB001    |            11 |
|   25 | KB002    |             2 |
|   25 | KB003    |             3 |
+------+----------+---------------+

这就是我想要的

问题是如何查询 MySql 以将第 25 周的日期范围返回到结果表中?
例如,
1. 第 24 周的日期范围是 10-06-2012 到 16-06-2012。
2. 第 25 周的日期范围是 17-06-2012 到 23-06-2012。

提前致谢。

4

1 回答 1

1

我不是 MySQL 人,所以我不得不尝试从 SQL Server 函数转换。但是,基本的数学就在那里。我会让你决定如何传递或计算@YEARSTART 和@YEAREND。

DECLARE @YEARSTART datetime, @YEAREND datatime
SET @YEARSTART='1/1/2012'
SET @YEAREND = '12/31/2012'

SELECT A.week, CASE WHEN (@YEARSTART + INTERVAL (8-DAYOFWEEK(@STARTYEAR)+(week-2)*7) DAY) < @YEARSTART 
                 THEN @YEARSTART
                 ELSE (@YEARSTART + INTERVAL (8-DAYOFWEEK(@STARTYEAR)+(week-2)*7) DAY) 
               END AS WeekStart,
               CASE WHEN (@YEARSTART + INTERVAL (7-DAYOFWEEK(@STARTYEAR)+(week-1)*7) DAY) > @YEAREND
                 THEN @YEAREND
                 ELSE (@YEARSTART + INTERVAL (7-DAYOFWEEK(@STARTYEAR)+(week-1)*7) DAY)
               END AS WeekEnd,
      A.itemcode, A.SumQty 
FROM
(
select week(real_pur_date) as week, itemcode, sum(quantity) AS SumQty
from sales
where week(real_pur_date) = week(20120620)
group by itemcode
) AS A
于 2012-06-26T13:36:04.393 回答