问个sql语句错误问题,解决马上结贴感谢

kmhugh 2009-08-26 11:37:11
select DISTINCT(t.cjgdm),t.cjgmc,(select sum(czbs) from contest_jghz where cjgmc=t.cjgmc) as hz
from contest_jghz t inner join contest_jg a on a.cjgdm=t.cjgdm where a.cjglb <> '2' and a.cjglb <> '6' and t.hz>'1000'

错误提示“列名 'hz' 无效”

如果不要后面的“and t.hz>'1000'”条件运行正确

感谢!
...全文
89 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
闲思暇想 2009-08-26
  • 打赏
  • 举报
回复
理由就是(select sum(czbs) from contest_jghz where cjgmc=t.cjgmc) as hz 。
你这里hz是别名,是计算出来的一列,不是实体列,也不属于那个表t的列。所以你最后的t.hz就让电脑懵了,其实我也有点懵。
--小F-- 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kmhugh 的回复:]
给个理由就更感谢了,感谢~
[/Quote]

你前面的是给表取了个别名 在后面比较大小的时候应该取hz表里面的sum(czbs)这个字段
alisafan123 2009-08-26
  • 打赏
  • 举报
回复
and(select sum(czbs) from contest_jghz where cjgmc=t.cjgmc)>'1000'
Yang_ 2009-08-26
  • 打赏
  • 举报
回复
2005+:

select DISTINCT(t.cjgdm),t.cjgmc,x.hz 
from contest_jghz t inner join contest_jg a on a.cjgdm=t.cjgdm
cross apply (select sum(czbs) as hz from contest_jghz where cjgmc=t.cjgmc) as x
where a.cjglb <> '2' and a.cjglb <> '6'
and x.hz>'1000'
--小F-- 2009-08-26
  • 打赏
  • 举报
回复
--或者直接这样
select
DISTINCT(t.cjgdm),t.cjgmc,
(select sum(czbs) from contest_jghz where cjgmc=t.cjgmc) as hz
from
contest_jghz t inner join contest_jg a on a.cjgdm=t.cjgdm
where
a.cjglb <> '2' and a.cjglb <> '6'
and
(select sum(czbs) from contest_jghz where cjgmc=t.cjgmc)>'1000'
kmhugh 2009-08-26
  • 打赏
  • 举报
回复
给个理由就更感谢了,感谢~
--小F-- 2009-08-26
  • 打赏
  • 举报
回复
--try
select
DISTINCT(t.cjgdm),t.cjgmc,
(select sum(czbs) as t from contest_jghz where cjgmc=t.cjgmc) as hz
from
contest_jghz t
inner join
contest_jg a on a.cjgdm=t.cjgdm where a.cjglb <> '2' and a.cjglb <> '6' and hz.t>'1000'
Yang_ 2009-08-26
  • 打赏
  • 举报
回复
select DISTINCT(t.cjgdm),t.cjgmc,(select sum(czbs) from contest_jghz where cjgmc=t.cjgmc) as hz 
from contest_jghz t inner join contest_jg a on a.cjgdm=t.cjgdm
where a.cjglb <> '2' and a.cjglb <> '6' and (select sum(czbs) from contest_jghz where cjgmc=t.cjgmc)>'1000'
水族杰纶 2009-08-26
  • 打赏
  • 举报
回复
select DISTINCT(t.cjgdm),t.cjgmc,(select sum(czbs) from contest_jghz where cjgmc=t.cjgmc) as hz 
from contest_jghz t inner join contest_jg a on a.cjgdm=t.cjgdm and t.hz>'1000'
where a.cjglb <> '2' and a.cjglb <> '6'

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧