2014-02-22 37 views
0

我想取誰的加盟日期是相同的員工的名字,我的查詢是得到錯誤當比較日期甲骨文

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

這裏DOJ是連接和子查詢是給我兩個日期的日期。

我收到此錯誤

ORA-00904: "D0J": invalid identifier 

難道我做錯了什麼?請幫我

+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之後的那個。

+0

感謝它現在的作品,我想我把零而不是'O'放在一個司法部。 Oracle sql開發人員showz兩者幾乎都是一樣的,它是字符。 :) –

+0

@Utkarshsahu - SQL Developer將它們顯示爲不同的字符,您使用的字體使得難以區分。可能是一個更好的主意,轉變爲更適合程序員的方案;例如Consolas是相當普遍的,雖然有很多人都有他們的最愛* 8-) –

1

嘗試this.You做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) 
    ^^^ 
+0

謝謝man :)的作品。傻我 –

+0

@Ukkarshsahu很高興我可以幫你..標記這個答案是有用的如果我幫你 –