/모든 불만 번호, 그래서 DISTINCT
작동하지 않습니다 사용. 당신이 열 1 = A에 대한 하나의 기록을 원하는 경우 간단한 테이블과 같은
Column1 | Column2
-----------+------------
A | X
A | Y
을 고려, SQL은 열 2에서 X 또는 Y를 넣어 여부를 알 수있는 방법이 있습니다. 이것은 당신이 가지고있는 것과 같은 문제이지만, 2가 아닌 19 열을 가지고 있습니다. 각 불만 번호에 어떤 행이 표시 될지 결정하는 방법에 관해서는 일종의 논리를 구현해야합니다. 여기
SELECT Column1,
Column2
FROM ( SELECT Column1,
Column2,
ROW_NUMBER() OVER(PARTITION BY Column1 ORDER BY Column2 ASC) [RowNumber]
FROM MyTable
) t
WHERE RowNumber = 1
내가 만 가장 높은 우선 순위를 표시, 각 행의 우선 순위를 위해 ROW_NUMBER()
기능을 사용하고 있습니다 : 그래서 위의 표에 대해 나는 다음과 같은 쿼리를 사용하는 것이 열 2에 표시 할 X를 원한다면. 그들이 어떤 순서로 나오는지 신경 쓰지 않는다면 무언가를 사용하여 무작위 행을 선택할 수 있습니다. 내가 무슨 논리가 나는 당신이 필요로 정확히 게시 할 수 없습니다,하지만 난 시도하고 얻을 수있는 쿼리에 적용 할 알고하지 않기 때문에
ROW_NUMBER() OVER(PARTITION BY Column1 ORDER BY NEWID()) [RowNumber]
당신은 시작 :
이
SELECT [Complaint Number],
[Complaint_For],
[Total_Complaint_Qty],
[Defects],
[Customer Code ],
[Location],
[CutomerName],
[KUNUM],
[QMNUM],
[Responsible_KAM]
FROM ( SELECT [Complaint Number],
[Complaint_For],
[Total_Complaint_Qty],
[Defects],
[Customer Code ],
[Location],
[CutomerName],
[KUNUM],
[QMNUM],
[Responsible_KAM],
ROW_NUMBER() OVER(PARTITION BY [Complaint Number] ORDER BY Complaint_For, Defects) AS RowNumber
FROM [CCCMPREPOSITORY].[dbo].[VW_Final_]
) data
WHERE RowNumber = 1
그냥 바이올린해야 주변에있는 ORDER BY
은 ROW_NUMBER
의 기능에 맞게 사용할 수 있습니다.
제쳐두고, 열 및 테이블/뷰의 이름을 변경하는 것을 고려하십시오. 객체 이름의 공백은 혐오 스럽습니다. – GarethD
고맙습니다 .. 100 % 일하고 있습니다 .. –
GarethD the Genius ... –