我创建了一个查询,用于计算在给定的一周内扣除产品成本(我不知道业务术语)后的金额。
我打算得到268.38英镑,但我在12月2日至8日的一周内得到203.64英镑。
以下是我的查询,非常感谢任何帮助。
SELECT
ROUND(SUM(sell_price), 2) AS sell_price,
ROUND(SUM((sell_price - 2.8)/100 * 17.25 + 0.49), 2) AS fees,
ROUND(SUM(buy_price), 2) AS buy_price,
ROUND(SUM(sell_price - ((sell_price - 2.8)/100*17.25+0.49) - buy_price), 2) AS margin,
time
FROM order_items
GROUP BY WEEK(FROM_UNIXTIME(time), 1)
ORDER BY time DESC
更新
这真的很奇怪,但是当我在phpmyadmin中运行查询时,我在sqlfiddle中获得了不同的结果
答案 0 :(得分:2)
我认为你的选择是错误的。如果你想获得每个弱点,那么你需要将时间改为WEEK(FROM_UNIXTIME(时间),1)。
答案 1 :(得分:1)
根据经验:
当您选择普通列(如时间)和聚合函数(如sum,min,max,count)时,GROUP BY子句始终是普通列的列表。 (MySQL允许您出于性能原因而采用普通列的子集)。
因此,在您的示例中,如果您想要每周金额,则应选择彼得建议的周,然后选择汇总计算。然后,group by与select-line中的周相同。