将值相乘的Mysql查询返回double
我试图从一个表中按周计算单位销售额,然后乘以另一个表中的价格,然后按产品计算结果。我用过。结果是实际结果的两倍 查询如下所示:将值相乘的Mysql查询返回double,mysql,Mysql,我试图从一个表中按周计算单位销售额,然后乘以另一个表中的价格,然后按产品计算结果。我用过。结果是实际结果的两倍 查询如下所示: SELECT product, week, SUM(units * price) AS revenue FROM weekly_sales JOIN pricing ON weekly_sales.product = pricing.product GROUP BY product, week; product | units | week B00
SELECT product, week, SUM(units * price) AS revenue
FROM weekly_sales
JOIN pricing ON
weekly_sales.product = pricing.product
GROUP BY product, week;
product | units | week
B001 | 5 | 41
B001 | 2 | 42
B002 | 3 | 41
B002 | 8 | 42
product | current_price | week
B001 | 6.99 | 41
B002 | 8.99 | 41
我尝试过一些方法,比如使用DISTINCT。最初是进行第二次连接以获取目录信息,但为了确保这不是问题所在,将其删除。我还使用WHERE week=current.week来查看是否可以让它只工作一周,但问题是相同的。谢谢
每周销售情况如下所示:
SELECT product, week, SUM(units * price) AS revenue
FROM weekly_sales
JOIN pricing ON
weekly_sales.product = pricing.product
GROUP BY product, week;
product | units | week
B001 | 5 | 41
B001 | 2 | 42
B002 | 3 | 41
B002 | 8 | 42
product | current_price | week
B001 | 6.99 | 41
B002 | 8.99 | 41
定价表如下所示:
SELECT product, week, SUM(units * price) AS revenue
FROM weekly_sales
JOIN pricing ON
weekly_sales.product = pricing.product
GROUP BY product, week;
product | units | week
B001 | 5 | 41
B001 | 2 | 42
B002 | 3 | 41
B002 | 8 | 42
product | current_price | week
B001 | 6.99 | 41
B002 | 8.99 | 41
结果如下:
product | week | revenue
B001 | 42 | 69.9
B001 | 41 | 27.96
B002 | 42 | 53.94
我认为您应该在join中再添加一个条件,如下所示:
SELECT product, week, (units * price) AS revenue
FROM weekly_sales
JOIN pricing ON
weekly_sales.product = pricing.product
and weekly_sales.week = pricing.week
GROUP BY 1, 2;
希望有帮助 我认为您应该在join中再添加一个条件,如下所示:
SELECT product, week, (units * price) AS revenue
FROM weekly_sales
JOIN pricing ON
weekly_sales.product = pricing.product
and weekly_sales.week = pricing.week
GROUP BY 1, 2;
希望有帮助 如果对该样本数据集运行,是否也可以显示一个数据样本以及从查询中获得的输出。@Spudley添加了一些样本。收入值是正确的,但不是价格x单位,而是价格x单位x 2。请参阅尝试在不分组的情况下查看数据。行可能有重复项。如果对该样本数据集运行,您是否也可以显示数据样本以及从查询中获得的输出。@Spudley添加了一些样本。收入值是正确的,但不是价格x单位,而是价格x单位x 2。请参阅尝试在不分组的情况下查看数据。行可能有重复项。您的
每周销售
表中是否有多行的(产品,周)
对?如果没有,则不需要sum()。请同时检查演示。它仍然是双精度的。此外,我们不会每周更新定价。如果我使用你的建议,我需要每周定价吗?我试着输入每周的定价值以进行检查,但仍然是双倍。如果您希望每周定价,那么无论您使用哪种解决方案,每周的每个产品都应该有一行。另外,您能告诉我在演示中使用的示例数据与实际数据之间的差异吗?因为它对于样本数据工作正常。另外,您是否正在执行此查询中的任何其他联接?因为这也可能会产生重复。您的每周销售
表中是否有多行的(产品,周)
对?如果没有,则不需要sum()。请同时检查演示。它仍然是双精度的。此外,我们不会每周更新定价。如果我使用你的建议,我需要每周定价吗?我试着输入每周的定价值以进行检查,但仍然是双倍。如果您希望每周定价,那么无论您使用哪种解决方案,每周的每个产品都应该有一行。另外,您能告诉我在演示中使用的示例数据与实际数据之间的差异吗?因为它对于样本数据工作正常。另外,您是否正在执行此查询中的任何其他联接?因为这也可能造成重复。