为何我这样写就不行呢! select 姓名,语文,数学,物理 sum (语文+ 数学+ 物理) as [incount] from [tb] where GROUP BY 姓名;
--select sum (语文+ 数学+ 物理) as incount from tb where 姓名 = '張三'; 这样没问题
--select sum (语文+ 数学+ 物理) as incount from tb where 姓名 = '張三'; 这样没问题
没聚合的当然得参加GROUP BY 分组了,
select 姓名,max(语文),max(数学),max(物理), sum (语文+ 数学+ 物理) as [incount] from [tb] where GROUP BY 姓名;
也是可以的哦
能否解释下
select 姓名,语文,数学,物理 sum (语文+ 数学+ 物理) as [incount] from [tb]
where GROUP BY 姓名;问题原因
group by 后要写明所有需要聚合的字段名解决办法
SELECT 姓名,语文,数学,物理 ,
(SELECT SUM (语文+ 数学+ 物理) FROM TB WHERE 姓名=T.姓名) as [incount]
from TB
The column prefix 'T' does not match with a table name or alias name used in the query.
SELECT 姓名,语文,数学,物理 ,
(SELECT SUM (语文+ 数学+ 物理) FROM TB WHERE 姓名=姓名) as [incount]
from TB
select 姓名,max(语文),max(数学),max(物理), sum (语文+ 数学+ 物理) as [incount] from [tb] where GROUP BY 姓名;2:
select 姓名,语文,数学,物理 ,sum (语文+ 数学+ 物理) as [incount] from [tb] where GROUP BY 姓名,语文,数学,物理
sql77有练习sql的资料吗
能否发下
最好带表的结构
如if not object_id('cj')is null
drop table cj
go
create table cj(stuName nvarchar(10),KCM nvarchar(10),cj numeric(5,2))
insert into cj select '张三','语文',98
union select '李四','语文',89
union select '王五','语文',67
union select '周攻','语文',56
union select '张三','数学',89
union select '李四','数学',78
union select '王五','数学',90
union select '周攻','数学',87