gpt4 book ai didi

php - 选择 3 个不同的表

转载 作者:行者123 更新时间:2023-11-29 00:26:41 25 4
gpt4 key购买 nike

我有 3 个表,名为 rsalesrreturnproductlist。表 rsalesrreturntotal 。我的目标是,我想对 rsales 中的所有 total 值和 rreturn 表中的 total 值求和并选择特定的值仅来自 productlist 表。

比方说,我从 productlist 表中获取了以下数据:

id | pcode | pname | pdesc | 
1 | 222 | 33uf | 10v |

rsales 表中的数据:

id | total | pcode |
1 | 200 | 222 |
2 | 200 | 222 |

rreturn 表中的数据:

id | total | pcode |
1 | 50 | 222 |
2 | 20 | 222 |

输出必须是这样的:

   id | pcode | pname | pdesc | total 
1 | 222 | 33uf | 10v | 470

我的问题是:我想对 rsalesrreturn 表中的所有 total 值求和,并从 productlist 中选择所有值。我在下面有以下代码并且运行得很好。但它只能对 rsales 表的总值求和,或者更确切地说,它只能对一个表的值求和。

$result = mysql_query("SELECT 
productlist.*,
SUM(rsales.total) as total,
SUM(rsales.vatable_sales) as vatable_sales,
SUM(rsales.vats) as vats,
SUM(rsales.discount) as discount

FROM productlist
LEFT JOIN rsales ON rsales.pcode = productlist.pcode
GROUP BY pcode
ORDER BY total ASC");

最佳答案

您没有明确说明什么对您不起作用。您是否获得了结果,但数字不是您所期望的?好吧,假设您有三个销售和两个返回,那么通过连接所有表您会得到六个记录。因此,您的销售额翻了一番,返回翻了三倍。

对于一种解决方案,您可以改为加入聚合:

$result = mysql_query("SELECT 
productlist.*,
sumsales.sum_total + sumreturns.sum_total as total,
sumsales.sum_vatable_sales as vatable_sales,
sumsales.sum_vats as vats,
sumsales.sum_discount as discount
FROM productlist
LEFT JOIN
(
SELECT pcode, SUM(total) as sum_total, SUM(vatable_sales) as sum_vatable_sales, SUM(vats) as sum_vats, SUM(discount) as sum_discount
FROM rsales
GROUP BY pcode
) AS sumsales ON sumsales.pcode = productlist.pcode
LEFT JOIN
(
SELECT pcode, SUM(total) as sum_total
FROM rreturn
GROUP BY pcode
) AS sumreturns ON sumreturns.pcode = productlist.pcode
ORDER BY total ASC");

关于php - 选择 3 个不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18586604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com