करने के लिए इसी कॉलम जोड़ने का तरीका Microsoft SQL सर्वर 2012कैसे एक धुरी डाटासेट
का उपयोग करते हुए मैं एक मेज है:
PartID |TypeSet | Setting | ObservID |TransDate
---------------------------------------------
1 A 456 12 10/20/2015
1 A 377 12 10/20/2015
1 A 425 12 10/20/2015
1 A 665 12 10/20/2015
1 A 543 12 10/20/2015
1 A 554 12 10/20/2015
1 B 34 41 10/21/2015
1 B 27 41 10/21/2015
1 B 27 41 10/21/2015
1 B 29 41 10/21/2015
1 C 1299 12 10/20/2015
1 C 1227 12 10/20/2015
मैं निम्नलिखित के रूप में प्रदर्शित करना चाहते हैं। पार्टिड पर समूहित एकल पंक्ति।
PartID | A Avg | B Avg | C Avg | A ObservID | B ObservID | C ObservID
---------------------------------------------------------------------
1 503 29 1263 12 41 12
मैं ObservIDs/ओ एक बहु पंक्ति वापसी डाटासेट बनाने डब्ल्यू प्रदर्शित करने के लिए नहीं मिल सकता है।
SELECT
PartID
,[A] as 'A Average'
,[B] as 'B Average'
,[C] as 'C Average'
-- ,(ObservID)
--,CASE WHEN [A] = 'A Average' THEN max([ObservID]) END as 'A Ob'
--,CASE WHEN [B] = 'B Average' THEN max([ObservID]) END as 'B Ob'
-- ,CASE WHEN [C] = 'C Average' THEN max([ObservID]) END as 'C Ob'
FROM
(SELECT
PartID
,TypeSet
,Setting
--,ObservID
FROM #Temp1
) as MeasData
PIVOT
(
AVG(Setting)
FOR [TypeSet] in
([A], [B], [C])
) as PivotTable
आप उपरोक्त क्वेरी जहां मैं इसमें ObservID पाने के लिए कोशिश की है लेकिन जब मैं उन पंक्तियों uncomment, त्रुटियां होती हैं में देख सकते हैं: मैं ए, बी और इस क्वेरी के साथ सी औसत के साथ कोई समस्या नहीं है। कुछ नोट्स: ऑब्जर्विड्स प्रत्येक टाइपसेट के लिए लगातार बने रहेंगे।
यहाँ डेटा है:
create table #Temp1
(
PartID INT
, TypeSet VARCHAR(10)
, Setting INT
, ObservID INT
, TransDate Date
)
INSERT INTO #Temp1(PartID, TypeSet, Setting, ObservID, TransDate) VALUES
(1, 'A', 456, 12, '10/20/2015'),
(1, 'A', 377, 12, '10/20/2015'),
(1, 'A', 425, 12, '10/20/2015'),
(1, 'A', 665, 12, '10/20/2015'),
(1, 'A', 543, 12, '10/20/2015'),
(1, 'A', 554, 12, '10/20/2015'),
(1, 'B', 34, 41, '10/21/2015'),
(1, 'B', 27, 41, '10/21/2015'),
(1, 'B', 27, 41, '10/21/2015'),
(1, 'B', 29, 41, '10/21/2015'),
(1, 'C', 1299, 12, '10/20/2015'),
(1, 'C', 1227, 12, '10/20/2015')
धुरी आपरेशन के साथ अपने वांछित उत्पादन संभव है? या क्या मुझे प्रत्येक टाइपसेट के लिए टेबल पर एकाधिक जॉइन का मार्ग जाना चाहिए?
यह बहुत अच्छा है। मुझे जो चाहिए वह मुझे प्राप्त करता है। मेरी एकमात्र चिंता प्रदर्शन है लेकिन साथ ही, मैंने व्याख्या योजनाओं की समीक्षा नहीं की है ... लेकिन इसके लिए धन्यवाद। – Charlie
@Charlie यह 'PIVOT' का उपयोग कर किसी भी क्वेरी के जितना तेज़ होना चाहिए। 'PIVOT' वास्तव में सशर्त एकत्रीकरण के लिए वाक्य रचनात्मक चीनी है। –