user defined functions - SQL Server Query with complex calculations for every row -
यह स्थिति है।
तालिका एक कोला 1 कोला 2
टेबल बी
Colb1 colb2 colb3 colb4 colb5
तालिका c - colc1 colc2 colc3
cola2 = colb1 और colb4 = colc12 के प्रत्येक मूल्य के लिए, कोला 2 के प्रत्येक मान के लिए colb2 को प्राप्त करें = Colb1 और colb5 = colc3, प्रत्येक कोला 2 के लिए colb3
गणना (colb3-colb2) * size * factor1 करें।
प्रत्येक कोला 2 के लिए एसएम ((colb3-colb2) * आकार * कारक 1) की गणना करें < प्रत्येक कोला 2
के लिए एवीजी ((colb3-colb2) * आकार * कारक 1) की गणना करें
मूल्य (colb3-colb2) * size * factor1 को अन्य गणनाओं के लिए तालिका में भी संग्रहित करने की आवश्यकता है मैंने मल्टी स्टेटमेंट टेबल का प्रयोग करके उपयोगकर्ता परिभाषित फ़ंक्शन का मूल्यांकन किया। लेकिन एक ही तालिका में दोनों मूल्यों और एकल मानों को वापस करने में असमर्थ। मैं एक ही युग्म क्वेरी में एकाधिक यूडीएफ कैसे उपयोग करूं? क्या कोई और फीचर है जो मैं उपयोग कर सकता हूं?
नमूना डेटा: तालिका एक
आईडी 1 प्रोड 1
तालिका बी
id1 दिनांक से पहले id1 id2
Id2 तिथि से दाता एडी 3 आईडी 4
टेबल सी
आईडी 1 तिथि मूल्य
आईडी 2 तिथि मूल्य
आईडी 3 दिनांक मूल्य
आईडी 4 दिनांक मूल्य
तालिका बी ( आईडी 1) तालिका सी (आईडी 1) से मेल खाती है
तालिका बी (आईडी 2) मैचों में तालिका सी (आईडी 2)
मुझे टेबल सी से मूल्य प्राप्त करने की आवश्यकता है I इसलिए मैं मूल्यों को घटा सकता हूँ और परिणामों का योग प्राप्त कर सकता हूं। किसी भी मदद की सराहना
आप इसे साधारण एसक्यूएल स्टेटमेंट में क्यों नहीं कर सकते? मैं यहां कुछ भी मुश्किल नहीं देख रहा हूँ
कोला 2 का चयन करें, जब कॉलो 2 = कोल्ब 1 और कोल्ब 4 = कोल्सी 12 तब कॉलब 2 ईएलएसई नल एण्ड कैलक्यूशन 1 के रूप में, मामला जब कोला 2 = colb1 और colb5 = colc3 तब colb3 गणना शून्य 2 के रूप में गणना 2, (colb3 - colb2) * आकार * factor1 गणना 3 के रूप में, & lt; ... & gt; तालिका में INNER #intermediate में INNER में शामिल हों & lt; ... & gt; INNER में शामिल हों & lt; ... & gt; SumCalculation3, एवीजी (गणना 3) के रूप में औसत शून्य के रूप में (गणना 3) का चयन करें # इंटरमीडिएट से AVGCalculation3 तक
बेशक जब तक ... आपकी समस्या में अतिरिक्त हिस्से हैं जो आपने छोड़ दिए हैं लेकिन सामान्य तौर पर, मध्यस्थ तालिकाओं का उपयोग करना ठीक है, और अक्सर इन जटिल जटिल गणनाओं पर कार्रवाई करने का सबसे तेज़ तरीका है। इसे एक एसक्यूएल एसईसीईईटी में बांटने की कोशिश कर रहा है सिर्फ एक रखरखाव दुःस्वप्न के लिए पूछ रहा है।
Comments
Post a Comment