将值相乘的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()。请同时检查演示。它仍然是双精度的。此外,我们不会每周更新定价。如果我使用你的建议,我需要每周定价吗?我试着输入每周的定价值以进行检查,但仍然是双倍。如果您希望每周定价,那么无论您使用哪种解决方案,每周的每个产品都应该有一行。另外,您能告诉我在演示中使用的示例数据与实际数据之间的差异吗?因为它对于样本数据工作正常。另外,您是否正在执行此查询中的任何其他联接?因为这也可能造成重复。