0

我正在尝试从表 Responses 中选择满足几个条件并且在 update_datetime 字段中具有最新日期的单行。(我实际上想要 Responses 行中的所有字段,但我会满足于它的 response_uuid。)

我在下面的这个查询中的尝试产生了错误“在预期条件的上下文中指定的非布尔类型的表达式,靠近')'”。我到底做错了什么?

select response_uuid, MAX(update_datetime) 
from Responses 
where question_id=2115
and session_uuid in (
  select session_uuid from Sessions
  where client_uuid = '552782A2-4DC6-4715-B278-4C7F5F867975'
)
group by response_uuid
having MAX(update_datetime)

我在整个互联网上都盯着类似的问题,但我只是没有看到问题所在。感谢您的任何帮助!

ps 如果您有兴趣查看全部内容,或者查看全部内容会有所帮助,这实际上只是更大查询的一小部分。

4

1 回答 1

2

问题在这里:

having MAX(update_datetime)

这需要一个布尔表达式(逻辑上为真或假的东西),例如MAX(update_datetime) = <something>. 您没有可以评估为真或假的表达式,因为您没有什么可比较的。

从您的查询的外观来看(除非有什么我没有看到),您可以完全删除HAVINGGROUP BY聚合应该给MAX你你想要的。(为了清楚起见,我建议您使用类似MAX(update_datetime) AS MaxDateTime的名称命名结果列。)

于 2011-10-06T22:57:56.370 回答