आप कुछ के लिए डुप्लिकेट रिकॉर्ड होना आवश्यक है/सब शिकायत नंबर, इसलिए का उपयोग DISTINCT
काम नहीं करेगा। एक साधारण तालिका जैसे
Column1 | Column2
-----------+------------
A | X
A | Y
पर विचार करें आप स्तंभ 1 = एक के लिए सिर्फ एक रिकॉर्ड चाहते हैं, एसक्यूएल जानने Column2 में डालने के लिए है कि क्या एक्स या वाई का कोई रास्ता नहीं है। यह वही समस्या है जो आपके पास है लेकिन 1 9 कॉलम के साथ, 2 नहीं। आपको किसी शिकायत संख्या को लागू करने की आवश्यकता है कि प्रत्येक शिकायत संख्या के लिए कौन सी पंक्ति दिखाई देगी। तो उपरोक्त तालिका के लिए अगर मैं चाहता था एक्स Column2 में दिखाने के लिए मैं निम्न क्वेरी का उपयोग होगा:
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()
समारोह का उपयोग कर रहा प्रत्येक पंक्ति प्राथमिकता देने के लिए, उसके बाद ही सर्वोच्च प्राथमिकता के साथ एक प्रदर्शित। अगर मुझे कोई परवाह नहीं है कि वे किस क्रम में बाहर आए हैं तो मैं यादृच्छिक पंक्ति चुनने के लिए ऐसा कुछ उपयोग कर सकता हूं।
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% काम कर रहा है .. –
जीनियस जीनियस ... –