मेरे पास डेटाबेस में कई SQL सर्वर टेबल हैं जिनमें समान डोमेन (समान कॉलम) के बारे में जानकारी है और उनके नाम एक ही प्लस डेट प्रत्यय (yyyyMMdd
) हैं:
- TABLE_ABOUT_THIS_THING_20200131
- TABLE_ABOUT_THIS_THING_20191231
- TABLE_ABOUT_THIS_THING_20191130
- TABLE_ABOUT_THIS_THING_20191031
- TABLE_ABOUT_THIS_THING_20190930
- TABLE_ABOUT_THIS_THING_20190831
- ...
ऐसा लगता है कि अगर यह सब एक ही टेबल में होता तो यह और अधिक समझ में आता। क्या वर्तमान तालिका प्रत्यय से बने एक नए कॉलम (extraction_date
) के साथ इस टेबल को एक (TABLE_ABOUT_THIS_THING) में मर्ज करने के लिए एक क्वेरी/एसएसआईएस या कुछ इसी तरह का उपयोग करने का कोई तरीका है?
3 जवाब
एसएसआईएस का उपयोग करना: मल्टी टेबल से डेटा एकत्र करने के लिए यूनियन का उपयोग करें और अधिक जानकारी के लिए गंतव्य से पहले निष्कर्षण_डेट के लिए व्युत्पन्न कॉलम का उपयोग करें जो आप निम्न लिंक से ले सकते हैं: https://www.tutorialgateway.org/union-all-transformation-in -एसएसआईएस/
आप UNION ALL
का उपयोग कर सकते हैं:
create view v_about_this_thing as
select convert(date, '20200131') as extraction_date t.*
from TABLE_ABOUT_THIS_THING_20200131
union all
select convert(date, '20201912') as extraction_date t.*
from TABLE_ABOUT_THIS_THING_20191231
union all
. . .
यह एक विभाजित दृश्य, जिसके कुछ अन्य लाभ हैं।
चुनौती यह है कि इसे अप-टू-डेट कैसे रखा जाए। मेरा सुझाव है कि आप अपने डेटा प्रोसेसिंग को ठीक करें ताकि सारा डेटा एक ही टेबल में चला जाए। आप एक नौकरी भी सेट कर सकते हैं जो महीने में एक बार चलती है और मौजूदा तालिका में सबसे हाल के मूल्यों को सम्मिलित करती है।
एक विकल्प यह है कि हर महीने या समय-समय पर दृश्य का पुनर्निर्माण किया जाए। आप इसे डीडीएल ट्रिगर का उपयोग करके कर सकते हैं जो नई तालिका के प्रकट होने पर दृश्य को फिर से बनाता है।
एक अन्य विकल्प यह है कि एक वर्ष के लायक टेबल एक साथ - लेकिन खाली - और वर्ष में एक बार मैन्युअल रूप से दृश्य बनाएं। लेकिन आपको याद दिलाने के लिए आपके कैलेंडर पर एक नोट!
आप गंतव्य के रूप में नई तालिका "TABLE_ABOUT_THIS_THING" के साथ SSIS का उपयोग कर सकते हैं और एक क्वेरी जो स्रोत के रूप में इस तरह दिखती है:
`Select * FROM table1
UNION
Select * FROM table2
UNION
.
.
.`
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।
INSERT
क्वेरी लिख सकते हैं। क्या आप अपना प्रयास दिखा सकते हैं?