我有一个SQL查询,该查询仅提取2012年至2014年的数据。但是,我知道自从我们进入2018年以来,还有更多数据,但是没有提取。我需要将其拉到所有日期。这是我的代码。
select
PA.STUD_ID AS STUDENT_ID,
LS.SEQ_NUM AS SEQ_NUM,
LS.LOGIN_ID AS LOGIN_ID,
LS.LOGIN_TYPE AS LOGIN_TYPE,
LS.SESSION_ID AS SESSION_ID,
LS.LOGIN_TIME AS LOGIN_TIME,
LS.LOGOUT_TIME AS LOGOUT_TIME,
LS.LST_UPD_USR AS LAST_USER_UPDATED,
LS.LST_UPD_TSTMP AS LAST_TIME_STAMP,
LA.ATTEMPT_SUCCESSFUL AS SUCCESSFUL_ATTEMPT
FROM
PA_STUDENT PA,
PA_STUD_LOGIN_ATTEMPT LA,
PA_LOGIN_SESSION_INFO LS
WHERE
PA.STUD_ID = LA.STUD_ID
AND LA.SEQ_NUM = LS.SEQ_NUM
/** AND LOGIN_TIME >= [AuditDateRangeFrom]
AND NOT LOGIN_TIME > [AuditDateRangeTo] */
/** AND [security:PA_STUDENT PA]
*/
答案 0 :(得分:0)
根据您要返回的字段的语法,您的表似乎被命名为“ PA”,“ LS”和“ LA”。如果是这种情况,您的FROM部分应类似于:
FROM PA OUTER JOIN LA ON PA.STUD_ID = LA.STUD_ID OUTER JOIN LS ON LA.SEQ_NUM = LS.SEQ_NUM
您似乎正在尝试使用WHERE子句告诉表如何联接,但这应该在FROM子句中。
基本上,除非您的表实际上被命名为“ PA_STUDENT PA”,否则FROM子句中的语法没有意义,但是如果是这种情况,那么SELECT部分就没有意义。