我有一个查询应该显示与where子句匹配的所有数据,但不幸的是它只显示1个数据。这是我的询问。
SELECT
CONCAT(member.firstName, ' ', member.middleName, ' ', member.lastName) AS name,
(SUM(serviceapplication.memShareCap) * (60 / 100)) AS total_memshare,
COUNT(serviceapplication.servAppID) AS total_mem,
serviceapplication.memShareCap AS memsharecap
FROM serviceapplication
INNER JOIN member ON member.memID = serviceapplication.applyingMember
WHERE serviceapplication.status = 'Active'
AND member.memType = 'Client'
AND serviceapplication.CoopInfo_coopID = '1'
如何显示所有数据?
答案 0 :(得分:0)
由于您使用的是聚合函数,即sum和count,因此缺少group by
子句:
select concat (
member.firstName,
' ',
member.middleName,
' ',
member.lastName
) as name,
(SUM(serviceapplication.memShareCap) * (60 / 100)) as total_memshare,
COUNT(serviceapplication.servAppID) as total_mem,
serviceapplication.memShareCap as memsharecap
from serviceapplication
inner join member on member.memID = serviceapplication.applyingMember
where serviceapplication.status = 'Active'
and member.memType = 'Client'
and serviceapplication.CoopInfo_coopID = '1'
group by concat (
member.firstName,
' ',
member.middleName,
' ',
member.lastName
),
serviceapplication.memShareCap
如果要获取每行中所有成员的总数,请使用子查询:
select concat (
member.firstName,
' ',
member.middleName,
' ',
member.lastName
) as name,
(
select SUM(serviceapplication.memShareCap) * (60 / 100)
from serviceapplication
inner join member on member.memID = serviceapplication.applyingMember
where serviceapplication.status = 'Active'
and member.memType = 'Client'
and serviceapplication.CoopInfo_coopID = '1'
) as total_memshare,
(
select COUNT(serviceapplication.servAppID)
from serviceapplication
inner join member on member.memID = serviceapplication.applyingMember
where serviceapplication.status = 'Active'
and member.memType = 'Client'
and serviceapplication.CoopInfo_coopID = '1'
) as total_mem,
serviceapplication.memShareCap as memsharecap
from serviceapplication
inner join member on member.memID = serviceapplication.applyingMember
where serviceapplication.status = 'Active'
and member.memType = 'Client'
and serviceapplication.CoopInfo_coopID = '1';