在Oracle中比较日期时出错

时间:2014-02-22 04:40:33

标签: oracle

我正在尝试获取加入日期相同的员工姓名,我的查询是

SELECT 
  PNAME 
FROM 
  PROGRAMMER 
WHERE 
  D0J IN (SELECT DOJ FROM PROGRAMMER GROUP BY DOJ HAVING COUNT(DOJ)>1)

这里DOJ是加入日期,子查询给我两个日期。

我收到此错误

ORA-00904: "D0J": invalid identifier

我做错了吗?请帮帮我

2 个答案:

答案 0 :(得分:3)

是。 : - )

您的WHERE使用D0J IN(请注意/中的0),这是错误提及的内容。您的子查询使用DOJ(请注意/中没有O。)

WHERE 
  D0J IN (SELECT DOJ FROM PROGRAMMER GROUP BY DOJ HAVING COUNT(DOJ)>1)
   ^              ^                            ^                ^
   |              |                            |                |
   0              O                            O                O

错误消息包括列名称中的/

ORA-00904: "D0J": invalid identifier
             ^

其中一个显然是拼写错误。由于错误消息表明它是/的那个,它可能就是WHERE之后的那个。

答案 1 :(得分:1)

试试这个。你做了D(zero)J。为什么它显示"D0J": invalid identifier ..并使用正确的列名DOJ

SELECT 
  PNAME 
FROM 
  PROGRAMMER 
WHERE 
  DOJ IN (SELECT DOJ FROM PROGRAMMER GROUP BY DOJ HAVING COUNT(DOJ)>1)
  ^^^