选择列表中的列 'Project.ProjectName' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
一个工程表:Project
PrjGUID ProjectName
一个校对表:Prooread,标记工程在录入时候哪些行列录错了
校对表主键  状态(对错)  哪个工程   第几行 第几列
ProPK       Status      PrjGUID    x      y
1           1           AAA        10      7
2           0           AAA        1       1
3           1           BBB        1       1
Status=1,表示该行列是错误的
现在,想搜每个工程有多少个错误
select count(ProPK), Prjguid from proofread where status=1 group by prjguid
这样搜,是可以搜出来的
如:
1   AAA
1   BBB
但是,这样看,不好看,想同时能搜出工程名
1   AAA  某工程
1   BBB  乙工程
SQL code
select count(ProPK), a.PrjGUID, b.projectname 
from Proofread a left join Project b on a.PrjGUID=b.PrjGUID
where status=1 group by a.PrjGUID
自己写了一个,是错的。
------解决方案--------------------
select count(ProPK), a.PrjGUID, b.projectname  
from Proofread a left join Project b on a.PrjGUID=b.PrjGUID
where status=1 group by a.PrjGUID,b.projectname
------解决方案--------------------
select ErrorCount, c.PrjGUID, b.projectname from  
(select count(ProPK) ErrorCount, a.PrjGUID
from Proofread a  
where status=1 group by a.PrjGUID) as c
left join Project b on c.PrjGUID=b.PrjGUID