以下のSQLクエリを使用しています。Interactive_Sessions.Sessiondateから最新のセッション日付を取得しようとしていますが、他の2つのテーブル(Interactive.Users & Patroninfo)以下は、このSQL最新の日付を選択する(W/3テーブル結合)
JDOE Jane DOE 1234 [email protected] 10/27/14 10:24
JDOA Jane DOA 1345 [email protected] 11/13/17 12:34
をしたいと思い参加
何かを使用すると、私は現在、実行しようとしたとき、私は取得していますエラーを解決する方法を確認してください午前に働いているものです。これらのものは、私がMAXで見逃しているものですか?
Select
INTERACTIVE_USERS.USERID, PATRONINFO.FIRSTNAME, PATRONINFO.LASTNAME,
PATRONINFO.PATRONID, INTERACTIVE_USERS.EMAIL,
MAX(INTERACTIVE_SESSIONS.SESSIONDATE)
FROM
INTERACTIVE_SESSIONS
JOIN
INTERACTIVE_USERS
ON
INTERACTIVE_SESSIONS.USERID = INTERACTIVE_USERS.USERID
JOIN
PATRONINFO
ON
INTERACTIVE_USERS.PID = PATRONINFO.PATRONID
GROUP
BY INTERACTIVE_USERS.USERID, PATRONINFO.FIRSTNAME, PATRONINFO.LASTNAME, PATRONINFO.PATRONID, INTERACTIVE_USERS.EMAIL
ORDER BY
MAX(INTERACTIVE_SESSIONS.SESSIONDATE)
私の問題は、私は文によってグループに出るとき、私は、無効な識別子のためにORA-00904エラーが表示されるということですが、私は、テーブル名が完全に一致を確認しました。
私は声明で、グループを削除すると、私は通常
BYグループで解決するでしょうORA-00937ない単一グループのグループ機能は、そこに誰もが似たような経験している取得しますか?この種のエラーを解決するための手口はありますか、あるいは私は密であり、何かが明らかに欠けていますか?
は、代わりに私はこれを試してみましたが、それは唯一のANY Interactive_Users.Useridの代わりに、各Interactive_Users.Userid
Select
INTERACTIVE_USERS.USERID, PATRONINFO.FIRSTNAME, PATRONINFO.LASTNAME,
PATRONINFO.PATRONID, INTERACTIVE_USERS.EMAIL,
INTERACTIVE_SESSIONS.SESSIONDATE
FROM
INTERACTIVE_SESSIONS
JOIN
INTERACTIVE_USERS
ON
INTERACTIVE_SESSIONS.USERID = INTERACTIVE_USERS.USERID
JOIN
PATRONINFO
ON
INTERACTIVE_USERS.PID = PATRONINFO.PATRONID
WHERE
interactive_sessions.sessiondate=(Select
MAX(Interactive_sessions.sessiondate) from Interactive_sessions)
すべての 'GROUP BY'要素を削除して実行するかどうかを確認します。要素を取り除いて、機能しているものがあれば、それを1つずつ追加して戻します。 –
どのdbms?間違ったdbmsに回答を投稿すると無駄です。 – Eric
最初のクエリで何が問題になっていますか?それは大丈夫と思われる。 'ORDER BY 'なしで実行しようとしましたか? – Eric