由于您使用聚合函数,即总和和计数,你缺少一个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';
如果您使用的是SUM或COUNT,您通常需要使用GROUP BY表达式,否则它将总结所有数据并返回一行 – James