2015-12-01 9 views
6

मुझे कोई समस्या है जिसमें मैंने अन्य लोगों को इसी तरह के मुद्दों के साथ देखा है, लेकिन उन लोगों के लिए उत्तर मेरी स्थिति पर लागू नहीं होते हैं। यह मेरा पहला प्रश्न है, इसलिए मुझे किसी भी स्वरूपण के मुद्दों के लिए अग्रिम में क्षमा करें और किसी भी अंतर्दृष्टि के लिए धन्यवाद जो आप प्रदान कर सकते हैं।मेरा PIVOT प्रत्येक पंक्ति में पिवट कॉलम मानों के साथ डुप्लिकेट पंक्तियों को वापस कर रहा है

मेरे #TempTBData इस तरह दिखता है:

InvoiceProductID ContactID ContactName ChargeDescription Amount 
191 1832 Gloria Cheung Cruise Fare 500.00 
191 1886 John Novosad Cruise Fare 500.00 
191 2011 Christopher Yong Cruise Fare 100.00 

मेरे धुरी कोड इस तरह दिखता है:

SELECT DISTINCT<br> 
     [InvoiceProductID]<br> 
     ,[ChargeDescription]<br> 
     ,[Christopher Yong],[Gloria Cheung],[John Novosad]<br> 
     FROM #TempTBData<br> 
      PIVOT(MAX([Amount])<br> 
      FOR [ContactName] IN ([Christopher Yong],[Gloria Cheung],[John Novosad])) AS PVTTable 

..और मेरी धुरी परिणाम इस प्रकार है:

InvoiceProductID ChargeDescription Christopher Yong Gloria Cheung John Novosad 

    191 Cruise Fare NULL NULL 500.00 
    191 Cruise Fare NULL 500.00 NULL 
    191 Cruise Fare 100.00 NULL NULL 

.. और मुझे परिणाम होना चाहिए:

InvoiceProductID ChargeDescription Christopher Yong Gloria Cheung John Novosad 
191 Cruise Fare 100.00 500.00 500.00 

कृपया मुझे बताएं कि मैं क्या गलत कर रहा हूं।

+0

धन्यवाद @Ajmot! मैं सीमित wysiwyg संपादक के अंदर इस तरह चीजों को प्रारूपित करने के तरीके को नहीं देख सका। – Scott

उत्तर

8

समस्या आपकी तालिका के क्षेत्र ContactID के कारण होती है।

SELECT [InvoiceProductID], [ChargeDescription], 
     [Christopher Yong],[Gloria Cheung],[John Novosad] 
FROM (
    SELECT [InvoiceProductID], [ContactName], [ChargeDescription], [Amount] 
    FROM #TempTBData) AS src 
PIVOT(MAX([Amount]) 
FOR [ContactName] IN ([Christopher Yong],[Gloria Cheung],[John Novosad])) AS PVTTable 

मैं DISTINCT हटा दिया है, क्योंकि यह इस मामले में अनावश्यक प्रतीत हो रहा है: एक व्युत्पन्न तालिका के बजाय स्पष्ट रूप से केवल धुरी ऑपरेशन के लिए आवश्यक क्षेत्रों का चयन करता है कि का उपयोग करें। स्वरूपण मदद के लिए

Demo here

+0

धन्यवाद @ जॉर्जियो !! इसने एक जादू की तरह काम किया :) – Scott

संबंधित मुद्दे