读书人

聚合不能出现在 ON 子句中除非该子句

发布时间: 2012-05-24 11:55:41 作者: rapoo

聚合不能出现在 ON 子句中,除非该子句位于 HAVING 子句或选择列表所包含的子查询中,并且所聚合的列是外部引用。

SQL code
select tabtimedata.区站号 as 区站号,tabaddress.站名 as 站名 , DateDiff(n, max(日期时间),getdate()) as 状态from  tabtimedata join tabaddress on  tabtimedata.区站号 = tabaddress.区站号 and DateDiff(n, max(日期时间),getdate())>120group by tabtimedata.区站号,tabaddress.站名 order by DateDiff(n, max(日期时间),getdate()) desc

--------------------------
聚合不能出现在 ON 子句中,除非该子句位于 HAVING 子句或选择列表所包含的子查询中,并且所聚合的列是外部引用

[解决办法]
SQL code
select tabtimedata.区站号 as 区站号,tabaddress.站名 as 站名 , DateDiff(n, max(日期时间),getdate()) as 状态from  tabtimedata join tabaddress on  tabtimedata.区站号 = tabaddress.区站号 group by tabtimedata.区站号,tabaddress.站名 having  DateDiff(n, max(日期时间),getdate())>120order by DateDiff(n, max(日期时间),getdate()) desc
[解决办法]
SQL code
select tabtimedata.区站号 as 区站号,tabaddress.站名 as 站名 , DateDiff(n, max(日期时间),getdate()) as 状态from  tabtimedata join tabaddress on  tabtimedata.区站号 = tabaddress.区站号  group by tabtimedata.区站号,tabaddress.站名 HAVING DateDiff(n, max(日期时间),getdate())>120order by DateDiff(n, max(日期时间),getdate()) desc
[解决办法]
try:
select tabtimedata.区站号 as 区站号,tabaddress.站名 as 站名 , DateDiff(n, max(日期时间),getdate()) as 状态
from tabtimedata join tabaddress on tabtimedata.区站号 = tabaddress.区站号
where DateDiff(n, max(日期时间),getdate())>120
group by tabtimedata.区站号,tabaddress.站名
order by DateDiff(n, max(日期时间),getdate()) desc


[解决办法]
select
tabtimedata.区站号 --as 区站号 把这个去掉,应该就可以了
,tabaddress.站名 as 站名 ,
DateDiff(n, max(日期时间),getdate()) as 状态
from
tabtimedata
join tabaddress on
tabtimedata.区站号 = tabaddress.区站号 and DateDiff(n, max(日期时间),getdate())>120
group by
tabtimedata.区站号,tabaddress.站名
order by
DateDiff(n, max(日期时间),getdate()) desc

读书人网 >SQL Server

热点推荐