sql 语句

光石头 发布于 2010/09/06 14:55
阅读 532
收藏 1

  SQL Server 2008数据库,执行语句语法报错

(select username,COUNT(username),inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25)  as  temp_table 

 

关键字 'as' 附近有语法错误。

 

很郁闷,这不就是一个简单的 语句啊!!!!

 

加载中
0
红薯
红薯

AS 是用在字段名上的,不能用在表名。

0
光石头
光石头

去掉也是报错

0
红薯
红薯

把完整的SQL语句贴出来

0
光石头
光石头

create table #tempReimTable(

userId int,

userName varchar(100),

dutyId int,

dutyName varchar(100),

citysum float,

zdf    float,

startDate datetime,

unitId int,

unitName varchar(200),

reimId int

)

 (select username,COUNT(username),inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25)    temp_table 

这样报错 

'temp_table' 附近有语法错误。

0
光石头
光石头

如果直接执行

select username,COUNT(username),inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25

可以出来结果

0
红薯
红薯

引用来自#6楼“屁屁果”的帖子

如果直接执行

select username,COUNT(username),inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25

可以出来结果

是啊,那你为什么还要搞成错误的写法呢?

0
光石头
光石头

明白了,

(select username,COUNT(username),inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25)    temp_table 

必须取个别名

(select username,COUNT(username) as temp_,inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25)    temp_table 

0
光石头
光石头

引用来自#7楼“红薯”的帖子

引用来自#6楼“屁屁果”的帖子

如果直接执行

select username,COUNT(username),inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25

可以出来结果

是啊,那你为什么还要搞成错误的写法呢?

有个地方那个需要连表查询,  给 count 取个别名就好了

0
y
ypsliu

不是吧 还有这种情况呀 不接呀

0
z
zbh

引用来自#9楼“屁屁果”的帖子

引用来自#7楼“红薯”的帖子

引用来自#6楼“屁屁果”的帖子

如果直接执行

select username,COUNT(username),inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25

可以出来结果

是啊,那你为什么还要搞成错误的写法呢?

有个地方那个需要连表查询,  给 count 取个别名就好了

 这个 貌似和 给count 取别名没关系

直接执行下面这个是没有问题的

(select username,COUNT(username),inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25)

如果要将此结果集 和 其他对象 联合查询或单独作为查询对象的话 是需要给这个语句整体 起一个别名的 如下

select * from (select username,COUNT(username),inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25) as TabXXX

或者

select * from (select username,COUNT(username),inDate from  #tempReimTable  group by inDate,userName having COUNT(username)>25) as TabXXX,TabYYY where Tabxxx.columx=Tabyyy.columny ....

返回顶部
顶部