我在数据库中从2个表中选择一些数据时遇到了问题。
表格为psthostess
和psttodo-uit
。
在我的psthostess
我要选择字段Code
和Name
在我的psttodo-uit
中,我想选择:
这是我的疑问:
SELECT p.Code, p.Name, sum(h.PB = 1), sum(h.PG = 1), sum(h.PA = 1),
sum(h.GoedkeuringDoorNew = 'GF'), sum(h.GoedkeuringDoorNew = 'SB'),
sum(h.GoedkeuringDoorNew = 'VIA'), sum(h.Blanco)
FROM psthostess p
INNER JOIN `psttodo-uit` h ON h.`Hostess Code` = p.Code
WHERE p.Indienst = 1
问题是我总是得到一行的结果。但psthostess
中有多行Indienst = 1
(WHERE)。我该如何解决这个问题?
答案 0 :(得分:3)
您需要按非聚合列对其进行分组。
SELECT p.Code, p.Name, sum(h.PB = 1),
sum(h.PG = 1), sum(h.PA = 1), sum(h.GoedkeuringDoorNew = 'GF'),
sum(h.GoedkeuringDoorNew = 'SB'), sum(h.GoedkeuringDoorNew = 'VIA'), sum(h.Blanco)
FROM psthostess p
INNER JOIN `psttodo-uit` h ON h.`Hostess Code` = p.Code
WHERE p.Indienst = 1
group by p.Code, p.Name