gpt4 book ai didi

c# - 左加入 3 个表 mysql

转载 作者:行者123 更新时间:2023-11-30 22:40:35 25 4
gpt4 key购买 nike

我的数据库中有 3 个表 enter image description here

我想从 bill_Details 表中检索所有产品及其数量。这是查询:

SELECT p.prod_Id,p.prod_Name,COALESCE(sum(b.de_Quantity+b.de_Bonus),0)
,p.prod_Cost,p.prod_ExpDate,p.prod_BonusInfo,p.prod_Note
FROM (products p
LEFT JOIN bill_Details b
ON p.prod_Id=b.prod_Id)
LEFT JOIN bills a
ON b.bill_Id = a.bill_Id and a.cus_Sup=1 and a.archived=0
GROUP BY p.prod_Id, p.prod_Name,p.prod_Cost,p.prod_ExpDate,p.prod_BonusInfo,
p.prod_Note
ORDER BY p.prod_Name asc

问题是当 a.cus_Sup=1 或 a.cus_Sup=0 时,此查询检索到相同的数量!知道当 a.cus_Sup=0 数量应为 0 时,当 a.cus_Sup=1 时,特定产品的数量应为 29.5。

这是数据: enter image description here

最佳答案

下面的查询适用于您的情况。

SELECT p.prod_id, 
p.prod_name,
COALESCE(Sum(b.de_quantity + b.de_bonus), 0),
p.prod_cost,
p.prod_expdate,
p.prod_bonusinfo,
p.prod_note
FROM products p
LEFT JOIN (SELECT bd.*
FROM bill_details bd
JOIN bills a
ON bd.bill_id = a.bill_id
WHERE a.cus_sup = 1
AND a.archived = 0) b
ON p.prod_id = b.prod_id
GROUP BY p.prod_id,
p.prod_name,
p.prod_cost,
p.prod_expdate,
p.prod_bonusinfo,
p.prod_note
ORDER BY p.prod_name ASC

关于c# - 左加入 3 个表 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31220543/

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