2008-10-28 53 views
7

有誰知道這個查詢有什麼問題嗎?Oracle PL/SQL查詢順序通過不同的問題

SELECT DISTINCT c.CN as ClaimNumber, 
     a.ItemDate as BillReceivedDate, c.DTN as 
DocTrackNumber 
     FROM ItemData a, 
     ItemDataPage b, 
     KeyGroupData c 
     WHERE a.ItemTypeNum in (112, 113, 116, 172, 189) 
     AND a.ItemNum = b.ItemNum 
     AND b.ItemNum = c.ItemNum 
     ORDER BY a.DateStored DESC; 

我已經做了T-SQL的大多數我的職業生涯中,這看起來正確的我,但這個查詢是針對Oracle數據庫和蟾蜍只是將光標在a.DateStored在ORDER BY部分。我確信這對於任何正在使用PL/SQL的人來說都是最基本的。

謝謝!

[編輯]對於未來的參考,通過在SQL * Plus提供的錯誤是: 「ORA-01791:沒有選定的表達」

回答

15

您需要查詢修改爲這樣:

SELECT DISTINCT c.CN as ClaimNumber, 
     a.ItemDate as BillReceivedDate, c.DTN as 
DocTrackNumber, a.DateStored 
     FROM ItemData a, 
     ItemDataPage b, 
     KeyGroupData c 
     WHERE a.ItemTypeNum in (112, 113, 116, 172, 189) 
     AND a.ItemNum = b.ItemNum 
     AND b.ItemNum = c.ItemNum 
     ORDER BY a.DateStored DESC; 

當執行DISTINCT訂單的需要是一個選定的列。

2

沒關係,在SQL Plus中執行給了我更多的信息回答。該DateStored需要在SELECT語句所以此工程:

SELECT DISTINCT c.CN as ClaimNumber,   
a.ItemDate as BillReceivedDate, 
c.DTN as DocTrackNumber, 
a.DateStored   
FROM ItemData a,   
ItemDataPage b,   
KeyGroupData c   
WHERE a.ItemTypeNum in (112, 113, 116, 172, 189)   
AND a.ItemNum = b.ItemNum   
AND b.ItemNum = c.ItemNum   
ORDER BY a.DateStored DESC; 
+0

只是,我得出的結論... – Carl 2008-10-28 14:25:16

+0

如果你在這裏留下這個問題,以供將來參考,然後我們也許應該注意到,給出的錯誤是: ORA-01791:沒有選定的表達 – Carl 2008-10-28 14:26:54

2

我相信order by子句的元素也必須在select子句中。