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週の日付の範囲は、2012年6月10日から2012年6月16日です。
2.第25週の日付の範囲は、2012年6月17日から2012年6月23日です。

前もって感謝します。

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 に答える