2012-12-06 66 views
0

我在找用戶'3392398'的APPLIES_TSSA/CD/CTT表中的GRANT_ID值,並按YEAR排序。ORACLE SQL:查找按年排序的給定值的所有列值

這是我當前的代碼:

SELECT GRANT_ID 
    FROM APPLIES_TSSA, APPLIES_CD, APPLIES_CTT 
WHERE (APPLIES_TSSA.COYOTE_ID 
     , APPLIES_CD.COYOTE_ID 
     , APPLIES_CTT.COYOTE_ID = ('3392398') 
GROUP BY to_date('DD-MM-YYYY') <= to_date('DD-MM-YYYY') 

我的模式是如下(link)

schema

+0

你可以發佈這些表的定義以及它們是如何相關的嗎?你的SQL沒有說清楚。 – Ben

+0

我不認爲'Da Fake One'正在問一個嚴肅的問題 –

+0

對不起,我爲我所有的登錄帳戶都擁有愚蠢的電子郵件帳戶。 – voyeurlei

回答

2

如果你想要的東西的年份排序,然後用order by,不group by。另外,學會使用正確的連接語法。我認爲查詢是這樣的:

SELECT GRANT_ID, tss.year 
FROM APPLIES_TSSA tssa join 
     APPLIES_CD cd 
     on tssa.COYOTE_ID = cd.COYOTE_ID join 
     APPLIES_CTT ctt 
     on tssa.Coyote_ID = ctt.COYOTE_ID 
where CTT.COYOTE_ID = ('3392398') 
order by tssa.year desc 
+0

我的教授沒有參加表格,這只是一個查詢問題。非常感謝btw,我跑了查詢,並且它返回了一條消息,它強調'Where' 錯誤在第6行: ORA-00905:缺少關鍵字 – voyeurlei

+0

擺脫WHERE子句中的括號並重試。或者用'IN'代替'='。 –

+0

@BobJarvis。 。 。問題是我遺漏了第二個「on」條款。 –