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>。比較するものがないため、trueまたはfalseと評価できる式はありません。

クエリの外観から(私が見ていないものがない限り)、HAVING完全に削除することができます。骨材のGROUP BY上にMAXあなたが望むものを与えるはずです。MAX(update_datetime) AS MaxDateTime(わかりやすくするために、結果の列に次のような名前を付けることをお勧めします。)

于 2011-10-06T22:57:56.370 に答える