2012-11-13 127 views
0

我有超过20列的视图。删除查询中的重复项

我有以下情况:

表X

Column A | Column B | Column C 

    CA1 | CB2 | CC7 
    CA2 | CB2 | CC8 
    CA3 | CB3 | CC5 
    CA4 | CB4 | CC6 

我该怎么办下面的查询?

  • 只显示3行(CA1CA3CA4),因为我需要同时满足下列条件以删除该行CA2

    1. CB2Column B
    2. CC7被复制比CC8不同在Column C

该选择也超过20 +列,我不能(可能是我的错)做一个截然不同或分组。

我试图跨越它自己,但也不起作用,因为在第二个查询上连接两次相同的记录。

请指教!谢谢!

+0

如何/你为什么给CA1在CA2偏好?它违反了CA2所做的相同的两个条件。 如果你给出你加入/查询的表格的简化结构,它可能会更有帮助。 –

+0

CC5与C列上的CC6不同,那么为什么要将CA4退回? – Beth

+0

@Beth我纠正了CA4,对不起。 –

回答

0

尝试:

SELECT 
    mina.colB, 
    mina.min_a, 
    tblx.colC 
FROM tblx INNER JOIN 
(SELECT 
    colB, 
    MIN(colA) AS min_a 
    FROM tblx 
GROUP BY 
    colB 
) mina ON 
mina.min_a = tblx.colA AND 
mina.colB = tblx.colB 

或者你可以使用MAX(COLC),而不是分(可乐),如果这就是你希望他们选择