我需要一个输出来显示此查询中的TripName,[Type],FirstName,LastName和[NumberOfGuides],但是我收到一条错误说明:
"消息512,级别16,状态1,行2子查询返回的值超过1 值。当子查询遵循=,!=,<,< =,
时,不允许这样做,> =或当子查询用作表达式时。"
select TripName, [Type], FirstName, LastName, (select count(*)
from Guide g, TripGuide tr, Trip t
where g.GuideNum = tr.GuideNum and t.TripID = tr.TripID
group by TripName, Type
having count(*) > 1 ) as [NumberOfGuides]
from Guide, Trip
order by NumberOfGuides desc
答案 0 :(得分:0)
即使我无法完全解读您的查询,也要从子查询中移出count
:
select TripName, [Type], FirstName, LastName, count(
select *
from Guide g, TripGuide tr, Trip t
where g.GuideNum = tr.GuideNum and t.TripID = tr.TripID
group by TripName, Type
having count(*) > 1 ) as [NumberOfGuides]
from Guide, Trip
order by NumberOfGuides desc
除此之外,子查询中似乎存在逻辑错误,因为没有与顶部查询的链接。
所以我想列NumberOfGuides
总是报告相同的值。
答案 1 :(得分:0)
我不明白显示指南数量的要求,您已经显示了可用的指南名称。通常对于这种结果列,指南的数量将为1,因为该行程将只有1个指南,该名称可用。如果您可以向我们提供您所期望的要求目标和样本所需结果,那将对您有所帮助。