में पंक्तियों को एक्सएमएल प्रारूप में कनवर्ट करना मुझे नीचे की आवश्यकता है। ऊपर छवि के लिएएसक्यूएल सर्वर
और DDL और dml स्क्रिप्ट
CREATE TABLE #example
([CCP_DETAILS_SID] int, [ACCOUNT_GROWTH] int, [PRODUCT_GROWTH] int, [PROJECTION_SALES] numeric(22,6), [PROJECTION_UNITS] numeric(22,6), [PERIOD_SID] int)
;
INSERT INTO #example
([CCP_DETAILS_SID], [ACCOUNT_GROWTH], [PRODUCT_GROWTH], [PROJECTION_SALES], [PROJECTION_UNITS], [PERIOD_SID])
VALUES
(30001, 0, 0, 1505384.695, 18487.25251, 1801),
(30001, 0, 0, 1552809.983, 18695.75536, 1802),
(30001, 0, 0, 1595642.121, 18834.75725, 1803),
(30002, 0, 0, 10000.32, 18834.75725, 1801),
(30002, 0, 0, 1659124.98, 18834.75725, 1802),
(30002, 0, 0, 465859546.6, 18834.75725, 1803)
;
और मैं नीचे (आउटपुट) की तरह एक्सएमएल प्रारूप करने के लिए ऊपर दिए गए परिणामों कन्वर्ट करना होगा।
ccp_details_sid xml_format_string
30001 <period>
<period_sid period_sid=1801>
<PROJECTION_SALES>1505384.695</PROJECTION_SALES>
<PROJECTION_UNITS>18487.25251<PROJECTION_UNITS>
<ACCOUNT_GROWTH>0</ACCOUNT_GROWTH>
<PRODUCT_GROWTH>0</PRODUCT_GROWTH>
</period_sid>
<period_sid period_sid=1802>
<PROJECTION_SALES>1552809.983</PROJECTION_SALES>
<PROJECTION_UNITS>18695.75536<PROJECTION_UNITS>
<ACCOUNT_GROWTH>0</ACCOUNT_GROWTH>
<PRODUCT_GROWTH>0</PRODUCT_GROWTH>
</period_sid>
<period_sid period_sid=1802>
<PROJECTION_SALES>1595642.121</PROJECTION_SALES>
<PROJECTION_UNITS>18834.75725<PROJECTION_UNITS>
<ACCOUNT_GROWTH>0</ACCOUNT_GROWTH>
<PRODUCT_GROWTH>0</PRODUCT_GROWTH>
</period_sid>
</period>
30002 Same like above
मैं XML
तो यह जल्दी से ऐसा करने में सक्षम नहीं किया जा सका करने के लिए नया हूँ। मैंने समाधान cross apply
के साथ उपयोग किया है लेकिन इसे प्राप्त करने में सक्षम नहीं है।
नोट: मेरी प्रमुख लक्ष्य ऊपर छवि में, अगर हम देखते हैं एक ccp_details_sid के लिए तीन रिकॉर्ड तो मैं XML
(जैसा कि ऊपर उल्लेख) का उपयोग कर एक पंक्ति के रूप में यह परिवर्तित करना चाहते हैं। का उपयोग कर CCP_DETAILS_SID
के लिए
SELECT t.CCP_DETAILS_SID,
( SELECT PERIOD_SID AS [@period_sid],
x.PROJECTION_SALES,
x.PROJECTION_UNITS,
x.ACCOUNT_GROWTH,
x.PRODUCT_GROWTH
FROM #Example AS x
WHERE x.CCP_DETAILS_SID = t.CCP_DETAILS_SID
FOR XML PATH('period_sid'), TYPE, ROOT('period')
) AS xml_format_string
FROM #Example AS t
GROUP BY t.CCP_DETAILS_SID;
यह अनिवार्य रूप से अपने सभी अनन्य मानों हो जाता है:
एक अच्छा सवाल! मैं * copy'n'pasteable * स्क्रिप्ट की सराहना करता हूं! मेरी तरफ से +1 – Shnugo