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

therobinliu 2009-12-15 08:44:26
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

--------------------------
聚合不能出现在 ON 子句中,除非该子句位于 HAVING 子句或选择列表所包含的子查询中,并且所聚合的列是外部引用
...全文
1192 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
copy_zn 2012-05-23
  • 打赏
  • 举报
回复
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()) des
--小F-- 2009-12-15
  • 打赏
  • 举报
回复
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())>120
order by
DateDiff(n, max(日期时间),getdate()) desc
jinjazzli 2009-12-15
  • 打赏
  • 举报
回复
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())>120)
order by
DateDiff(n, max(日期时间),getdate()) desc
csdyyr 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 csdyyr 的回复:]
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


[/Quote]
不好意思,错了,看楼上的。
guguda2008 2009-12-15
  • 打赏
  • 举报
回复
带MAX等聚合函数的字段作为条件只能出现在HAVING后,不能放在ON或者WHERE后
jinjazzli 2009-12-15
  • 打赏
  • 举报
回复
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
csdyyr 2009-12-15
  • 打赏
  • 举报
回复
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

SQL77 2009-12-15
  • 打赏
  • 举报
回复
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())>120
order by
DateDiff(n, max(日期时间),getdate()) desc
  • 打赏
  • 举报
回复
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())>120

order by
DateDiff(n, max(日期时间),getdate()) desc

34,870

社区成员

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

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