gpt4 book ai didi

php - 连接 2 个表 X 和 Y 以显示 Total sum() 结果事件表 Y 为空

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

我有 2 个表,我需要加入并根据要求对数量求和。这是表格结构。

Customer
---------------------------------------------------
ID | Name | Tel | Sex
---------------------------------------------------
1 | John | 123 XXXX | M
2 | Peter | 456 XXXX | M
3 | Alice | 789 XXXX | F
4 | Amy | 147 XXXX | F

Transaction
---------------------------------------------------
ID | CustID | TranID | Books | Pens | Rulers
---------------------------------------------------
1 | 1 | Jan | 1 | 1 | 0
2 | 1 | Feb | 1 | 0 | 0
3 | 2 | Jan | 1 | 0 | 1
4 | 2 | Jan | 1 | 0 | 0
5 | 3 | Feb | 0 | 1 | 1
6 | 4 | Feb | 1 | 1 | 0
7 | 3 | Feb | 1 | 1 | 0
8 | 4 | Feb | 0 | 0 | 1
9 | 3 | Jan | 1 | 0 | 0
10 | 2 | Jan | 1 | 1 | 0

Required Results (Sex=F, TranID=Jan, Sum:Books, Pens & Rulers)
--------------------------------------------------------------
Name | Tel | Sex | B.TOT | P.TOT | R.TOT
--------------------------------------------------------------
Alice | 789 XXXX | F | 1 | 0 | 0
Amy | 147 XXXX | F | 0 | 0 | 0

我已经尝试使用以下 SQL 语句,只要事务表不为空,它就可以正常工作。

select 
`customer`.name,
`customer`.tel,
`customer`.sex,
sum(if(`transaction`.TranID = 'JAN',books,0)) as B.Tot,
sum(if(`transaction`.TranID = 'JAN',pens,0)) as P.Tot,
sum(if(`transaction`.TranID = 'JAN',rulers,0)) as R.tot,
from
`customer`
left join
`transaction`
on
`customer`.id = `transaction`.custid
where
`customer`.sex = 'F'
Group by
`customer`.id,
order by
`customer`.name ASC

即使交易表完全为空,我如何修改上面的内容以显示 SEX='F' 的客户列表?

最佳答案

SQL 查询

我希望这个查询能解决您的问题:

SELECT 
c.name,
c.tel,
c.sex,
IFNULL(SUM(t.books), 0) 'B.TOT',
IFNULL(SUM(t.pens), 0) 'P.TOT',
IFNULL(SUM(t.rulers), 0) 'R.TOT'
FROM
customer c
LEFT JOIN
`transaction` t ON t.custid = c.id AND t.TranID = 'Jan'
WHERE
c.sex = 'F'
GROUP BY c.id
ORDER BY c.name;

关于php - 连接 2 个表 X 和 Y 以显示 Total sum() 结果事件表 Y 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32262438/

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