我试图从桌子上获得我的所有销售额并按周分组,但我得到错误的一周范围。
表格结构
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
答案 0 :(得分:1)
太容易了。你的mysql实例中的一周从星期日开始。你想要它从星期一算起。您需要将第二个参数传递给WEEK函数。在你的情况下它将是1(我认为)。不过,我建议您调整default_week_format系统变量以匹配您所在国家/地区的区域设置。