获得独特的1:1结果可能有多对多

时间:2013-01-08 09:14:50

标签: sql

好的希望标题没有误导性

我有(以及其他专栏)以下信息

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

我需要编写代码,以便PO_NUMBERPO_TRACKING_NO匹配ONCE,其他任何结果都会被消除......但PO_TRACKING_NO仍然可以引用其他PO_NUMBERPO_NUMBER可以引用其他PO_TRACKING_NO ...所以在上表中,我希望得到以下结果

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

所有必须通过查询来完成,我从视图中获取此信息,我不允许编辑/更改表/视图(尽管在这种情况下我不认为这会是一个问题)

编辑:抱歉文字没有以整洁的形式出现,试图格式化:( [我在这里很新]

3 个答案:

答案 0 :(得分:2)

如果表格中只有两列,DISTINCT可以帮助您,

SELECT DISTINCT PO_NUMBER, PO_TRACKING_NO
FROM tableName

答案 1 :(得分:1)

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]

答案 2 :(得分:-1)

只需使用DISTINCT:

SELECT DISTINCT PO_NUMBER, PO_TRACKING_NO
FROM YourTable