2012-12-06 30 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”条款。 –