2013-01-08 28 views
2

好希望標題不是誤導獲得獨特的1:1周的結果與多對多可能

我有(其他列中)以下信息

PO_NUMBER     PO_TRACKING_NO 
------------------------------------------- 
321A       C100 
321A       C100 
321A       C102 
321B       C100 
321B       C012 
321C       C012 

我需要編寫代碼,以便該PO_NUMBERPO_TRACKING_NO比賽過一次,其他結果被淘汰......但PO_TRACKING_NO還可以引用其他PO_NUMBERPO_NUMBER可以引用其他PO_TRACKING_NO ......於是有了上面的表格,我希望下面的結果

PO_NUMBER     PO_TRACKING_NO 
-----------------------------------------  
321A       C100 
321A       C102 
321B       C100 
321B       C012 
321C       C012 

所有必須通過查詢完成,我從視圖抓取這個信息,我不允許編輯/更改表/視圖(雖然在這種情況下,我不認爲這會是一個問題)

編輯:對不起文本的純形式不出來,試圖格式化:([我很新在這裏]

+0

如果你wan't你的代碼看起來清楚,只突出代碼然後點擊編輯器控件中的「{}」。 –

+0

我正在使用oracle,但SQL不能包含和Oracle SQL,因爲查詢將進入只讀SQL Server的第三方程序....所以我不能存儲變量 – socool111

回答

2

如果在你的表只有兩列,DISTINCT是來幫助你,

SELECT DISTINCT PO_NUMBER, PO_TRACKING_NO 
FROM tableName 
+0

確實,那是我的首先嚐試,但如果我這樣做比PO_NUMBER有兩個不同的跟蹤號碼,其中一個被淘汰 – socool111

+0

我收回我說的,不管什麼原因,是絕對有效 但我該如何添加更多列查詢不是獨特的一部分,每當我嘗試一些我得到一個錯誤 – socool111

1

A DISTINCT應該工作,但GROUP BY只會給你多一點信息:

SELECT 
[PO_NUMBER], 
[PO_TRACKING_NO], 
COUNT(*) AS [Occurrences] 
FROM [VW_TRAFFIC_PO_SIDE] 
GROUP BY 
[PO_NUMBER], 
[PO_TRACKING_NO] 
ORDER BY 
[PO_NUMBER], 
[PO_TRACKING_NO] 
+0

謝謝!絕對的工作,會給你+,但我的代表是不夠高的:( – socool111

+0

這不是關於賺取代表,這是關於解決問題,但你應該被允許標記這個答案作爲解決方案 – Jacco

+0

@ user1955517:現在你的代表是足夠高的:-) –

-1

只需使用DISTINCT像這樣:

SELECT DISTINCT PO_NUMBER, PO_TRACKING_NO 
FROM YourTable 
+0

已由@JW提供。 – Jacco