当我有3个重复的特定列时,我想只选择一组行。例如,在表格中,我只想显示2个引号中的一个,因为它们是副本。
QuoteNumber|LineNumber|BillToCustomer|PurchaseOrder|CreationDate|Item
...........|..........|..............|.............|............|.........
11 | 1 | John | 35 | 2014-04-09 | X1234
11 | 2 | John | 35 | 2014-04-09 | X5678
12 | 1 | John | 35 | 2014-04-09 | X1234
12 | 2 | John | 35 | 2014-04-09 | X5678-2
所以我有类似的东西:
SELECT * FROM vgQesHeader QH
left join vgQesDetail QD on QH.Link = QD.QuoteLink
这些标准:
QD.LineNumber='1'
COUNT(QH.BillToCustomer)>1
COUNT(QH.PurchaseOrder)>1
COUNT(QH.CreationDate)>1
并不知道如何做到这一点。
我试过了,但它似乎没有用。
编辑: 这是我的预期输出:
QuoteNumber|LineNumber|BillToCustomer|PurchaseOrder|CreationDate|Item
...........|..........|..............|.............|............|.........
11 | 1 | John | 35 | 2014-04-09 | X1234
11 | 2 | John | 35 | 2014-04-09 | X5678
答案 0 :(得分:0)
试试这个:
;with cte as
(select *, row_number() over (partition by linenumber order by quotenumber) rn from tbl)
select quotenumber, linenumber, billtocustomer, purchaseorder, creationdate, item
from cte
where rn = 1