帮家帮我看看这个SQL语句哪出错了,急急!!!!!

oolinyu 2013-08-15 10:06:47

SELECT DISTINCT TOP 10 a.Title,
Address,
MeetRemark,
City,
Star,
a.Id,
a.Pic,
a.MeetPic
FROM Hotel a,
Meet b,
mPrice c
WHERE a.Id > (SELECT MAX(a.Id)
FROM (SELECT DISTINCT TOP 10 a.Id
FROM Hotel a,
Meet b,
mPrice c
WHERE a.Isdel = '0'
AND a.Id = b.Hid
AND b.Id = c.Mid
AND ('' = ''
OR b.Types = '')
AND ('' = ''
OR b.ModalIty = '')
AND ('' = ''
OR b.Foyer = '')
AND ('' = ''
OR b.Yard LIKE '%%')
AND ('' = ''
OR b.Stage LIKE '%%')
AND ('' = ''
OR a.City LIKE '%')
ORDER BY a.Id ASC) AS Tbltmp)
AND a.Isdel = '0'
AND a.Id = b.Hid
AND b.Id = c.Mid
AND ('' = ''
OR b.Types = '')
AND ('' = ''
OR b.ModalIty = '')
AND ('' = ''
OR b.Foyer = '')
AND ('' = ''
OR b.Yard LIKE '%%')
AND ('' = ''
OR b.Stage LIKE '%%')
AND ('' = ''
OR a.City LIKE '%')
ORDER BY a.Id ASC
...全文
144 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
oolinyu 2013-08-15
  • 打赏
  • 举报
回复
找出问题了
Shawn 2013-08-15
  • 打赏
  • 举报
回复
楼主已经发过一次帖子了。当时我测试没有问题。楼主自己有表结构,自己放在SQL SERVER里面,执行一下,不就知道了。
oolinyu 2013-08-15
  • 打赏
  • 举报
回复
做分页啊查询
Andy__Huang 2013-08-15
  • 打赏
  • 举报
回复
看得出你三个表的相关查询,你直接说出想要什么结果?想要排名前10的记录,还是10名之后的记录?
Andy__Huang 2013-08-15
  • 打赏
  • 举报
回复
看你这个句子,where后面的子查询和主查询是一样的语句,用到distinct关键,还用到max函数 这里:WHERE a.Id > (SELECT MAX(a.Id)........)很容易出问题,一般改为 WHERE a.Id in (SELECT MAX(a.Id)........) 或 WHERE a.Id not in (SELECT MAX(a.Id)........)
oolinyu 2013-08-15
  • 打赏
  • 举报
回复
报的错是:聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用,
KeepSayingNo 2013-08-15
  • 打赏
  • 举报
回复
楼主肯定从这次收获不少,还是自己找出问题记忆深刻

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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