firebird2.5 - Firebird.Select columns from table.Some column may not exists -


मेरे पास एक समान क्वेरी है:

  एक, बी, सी, डी, ई, (Differenttable से somevalue चुनें, जहां report.a = two.a) दो के रूप में, (अन्य रिपोर्ट से somevalue चुनें, जहां report.a = three.a) तीन के रूप में, ("चयन करें" (कोल * CAST (BIGINT मूल्य के रूप में)) से "अन्यरेपोर्ट "रिपोर्ट (" 01.01.2010 ', '01 .10.2010') से राशि के रूप में "('01 .01.2010 ', '01 .10.2010')  

यह प्रश्न अपने मूल में काम करता है प्रपत्र, लेकिन समस्या यह है कि कुछ डेटाबेस (पुराने संस्करण) में जो कि मैं 'रिपोर्ट' संग्रहीत कार्यविधि के परिणाम में कुछ, ए, बी, सी, डी, ई के बारे में पूछता हूं और मुझे एक त्रुटि मिलती है.क्या इसे संभालने का सबसे अच्छा तरीका क्या होगा? मैं रिपोर्टों से चयन * के बारे में सोच रहा था, लेकिन मैं उपश्रेणी नहीं जोड़ सकता। हो सकता है कि मुझे ऐसा करने के लिए सही सिंटैक्सिस नहीं मिल सका। अन्य तरीकों से यह पता लगाना होगा कि स्तंभ पहले मौजूद हैं या नहीं चयन करें ...

कई चीजें हैं जो आप कर सकते हैं:

    < Li>

    एक उपनाम SELECT * का उपयोग करें, इसके बाद उपकुंजीएं एक साधारण SELECT * करने के बजाय आप चयन योग्य संग्रहीत कार्यविधि के नाम से और myAlias। * का उपयोग करें। :

      SELECT r। *, (Select विभिन्न रिपोर्टों से somevalue जहां report.a = two.a) "रिपोर्ट" ('01.01.2010', '01 .10.2010 ') से दो, ...  

    ध्यान दें कि यह क्वेरी के उपभोक्ता के लिए "लापता कॉलम" समस्या को हल करने की तरह, अपने स्वयं के डाउनसाइड्स हैं।

  • अपने डेटाबेस को अपग्रेड करें ताकि संग्रहीत कार्यविधि आपकी अपेक्षाओं से मेल खा सके। / P>

  • गतिशील रूप से प्रक्रिया मेटाडेटा से क्वेरी का निर्माण यह बहुत जटिल है, और वर्तमान में मेरे पास इस का पूर्ण उदाहरण देने का समय नहीं है।

Comments

Popular posts from this blog

sqlite3 - UPDATE a table from the SELECT of another one -

c# - Showing a SelectedItem's Property -

javascript - Render HTML after each iteration in loop -