मेरे पास डेटाबेस में कई 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) में मर्ज करने के लिए एक क्वेरी/एसएसआईएस या कुछ इसी तरह का उपयोग करने का कोई तरीका है?

0
danielsto 19 फरवरी 2020, 10:33
हां। ऐसा करने के लिए आप एक INSERT क्वेरी लिख सकते हैं। क्या आप अपना प्रयास दिखा सकते हैं?
 – 
Squirrel
19 फरवरी 2020, 10:36

3 जवाब

एसएसआईएस का उपयोग करना: मल्टी टेबल से डेटा एकत्र करने के लिए यूनियन का उपयोग करें और अधिक जानकारी के लिए गंतव्य से पहले निष्कर्षण_डेट के लिए व्युत्पन्न कॉलम का उपयोग करें जो आप निम्न लिंक से ले सकते हैं: https://www.tutorialgateway.org/union-all-transformation-in -एसएसआईएस/

0
Bhupendra kumar 19 फरवरी 2020, 10:46

आप 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
    . . . 

यह एक विभाजित दृश्य, जिसके कुछ अन्य लाभ हैं।

चुनौती यह है कि इसे अप-टू-डेट कैसे रखा जाए। मेरा सुझाव है कि आप अपने डेटा प्रोसेसिंग को ठीक करें ताकि सारा डेटा एक ही टेबल में चला जाए। आप एक नौकरी भी सेट कर सकते हैं जो महीने में एक बार चलती है और मौजूदा तालिका में सबसे हाल के मूल्यों को सम्मिलित करती है।

एक विकल्प यह है कि हर महीने या समय-समय पर दृश्य का पुनर्निर्माण किया जाए। आप इसे डीडीएल ट्रिगर का उपयोग करके कर सकते हैं जो नई तालिका के प्रकट होने पर दृश्य को फिर से बनाता है।

एक अन्य विकल्प यह है कि एक वर्ष के लायक टेबल एक साथ - लेकिन खाली - और वर्ष में एक बार मैन्युअल रूप से दृश्य बनाएं। लेकिन आपको याद दिलाने के लिए आपके कैलेंडर पर एक नोट!

0
Gordon Linoff 19 फरवरी 2020, 15:41
अब से सारा डेटा एक ही टेबल में जा रहा है। मेरा सवाल यह था कि आज से पहले इस्तेमाल की जाने वाली मौजूदा तालिकाओं से कैसे निपटें। मैं एक एसएसआईएस पैकेज पर काम कर रहा हूं जो प्रत्येक तालिका में शामिल हो जाता है और फ़ाइल नाम से आने वाली सही तारीख से भरे कॉलम के साथ इसे अंतिम तालिका में जोड़ता है। अगर मैं फंस गया तो मैं अपना प्रयास पोस्ट करूंगा।
 – 
danielsto
19 फरवरी 2020, 15:50
. . . बस मौजूदा तालिका में डेटा डालें।
 – 
Gordon Linoff
19 फरवरी 2020, 16:37
वह मुश्किल हिस्सा नहीं है। मुझे एक नए कॉलम (एक्सट्रैक्शन_डेट) में डाले गए टेबल नाम (दिनांक भाग) का सबस्ट्रिंग प्राप्त करने में परेशानी हो रही है।
 – 
danielsto
19 फरवरी 2020, 19:12

आप गंतव्य के रूप में नई तालिका "TABLE_ABOUT_THIS_THING" के साथ SSIS का उपयोग कर सकते हैं और एक क्वेरी जो स्रोत के रूप में इस तरह दिखती है:

`Select * FROM table1
UNION
Select * FROM table2 
UNION
.
.
.`
0
mind soft 19 फरवरी 2020, 17:55