1

我试图从一张桌子上获取我所有的销售额,并按每周对它们进行分组,但我得到了错误的周范围。

表结构

order_id,  sell_price, buy_price, time

每日销售额

Sell Price   Fees     Buy_Price    Margin   Date
181.98       36.39    78.43        67.154   03-12-2012
65.49        13.08    30.34        22.052   02-12-2012
44.21        8.84     19.45        15.918   29-11-2012
84.46        16.89    32.39        35.178   27-11-2012
106.52       21.30    61.66        23.556   26-11-2012
113.92       22.78    44.74        46.396   25-11-2012
64.74        12.94    26.32        25.472   24-11-2012
16.11        3.22     4.20         8.688    23-11-2012
13.81        2.76     3.62         7.428    22-11-2012

每周销售额

Sell Price   Fees     Buy_Price    Margin   Date
247.47       49.494   108.77       89.206   03-12-2012
349.11       69.822   158.24       121.048  26-11-2012
94.66        18.932   34.14        41.588   24-11-2012

您可能已经注意到,最后一张表的问题是数字没有加起来,第一行应该是计算结果3-11-2012 to present(这意味着边距应该是 67),而第二行应该是计算结果26-11-12 to 2-11-12(其中表示边距应在 95 左右)。

我正在使用的查询如下,它可能有什么问题,因为我看不到一个。

SQL

SELECT 
ROUND(SUM(sell_price),2) AS sell_price, 
ROUND(SUM(buy_price/100*20),2) AS fees, 
ROUND(SUM(buy_price),2) AS buy_price, 
ROUND(SUM(sell_price/100*80 - buy_price),2) AS margin, 
time 
FROM order_items 
GROUP BY WEEK(FROM_UNIXTIME(time)) 
ORDER BY WEEK(FROM_UNIXTIME(time)) DESC
4

1 回答 1

1

太容易了。您的 mysql 实例中的一周从星期日开始。您希望它从星期一开始计算。您需要将第二个参数传递给WEEK函数。在您的情况下,它将是 1(我认为)。但是,我建议您调整default_week_format系统变量以匹配您所在国家/地区的区域设置。

于 2012-12-04T03:18:29.370 回答