तक जोड़ सकें, मैं निम्न तालिका में केवल कुछ पंक्तियों का चयन कैसे कर सकता हूं ताकि वे कुछ मूल्य तक पहुंच सकें?एसक्यूएल किसी तालिका में कुछ पंक्तियों का चयन करें ताकि वे कुछ मान
Table
-----
id | qty1 | qty2 | qty3 | qty4
------------------------------
1 | 0.0 | 0.0 | 10 | 20
2 | 1.5 | 0.0 | 7.5 | 18
3 | 1.0 | 2.0 | 7.5 | 18
4 | 0.0 | 0.5 | 5 | 13
चलो कहते हैं कि, शीर्ष मूल्य मैं चाहता हूँ 57 है चलो ...
तो मैं पिछली तालिका की पंक्तियां चुनें करने की जरूरत है ऐसा है कि qty1 + qty2 + qty3 + प्रत्येक पंक्ति के qty4, जब तक मिलता है वह 57 मूल्य, और अन्य पंक्तियों को त्यागें। इस उदाहरण में, मैं मिलेगा निम्नलिखित:
id | qty1 | qty2 | qty3 | qty4
------------------------------
1 | 0.0 | 0.0 | 10 | 20
2 | 1.5 | 0.0 | 7.5 | 18
10 क्योंकि + 20 + 1,5 + 7,5 + 18 = 57, इसलिए मैं पंक्तियों 3 & 4 त्यागने ...
अब मैं शीर्ष कि इच्छा मूल्य, 50 है तो मैं मिलना चाहिए:
id | qty1 | qty2 | qty3 | qty4
------------------------------
1 | 0.0 | 0.0 | 10 | 20
2 | 1.5 | 0.0 | 7.5 | 11
के बाद से इन मूल्यों से 50 योग, और पंक्ति 2 से 7, qty4 बाहर छोड़ दिया है ... (btw पंक्तियों को है, क्योंकि इस खास तरह से आदेश दिया जाता है जिस क्रम में मैं qtys की रकम के लिए खाता बनाना चाहता हूं ... यह पहले आर को समेटने के लिए मान्य नहीं है ओउ 1, फिर 3, फिर 2 फिर 4, उदाहरण के लिए ... उन्हें हमेशा 1,2,3,4 क्रम में समझा जाना चाहिए ...)
यदि मुझे इसका पूरक चाहिए तो क्या होगा? मेरा मतलब है, दूसरी दो पंक्तियों को मुझे अंतिम परिणाम में नहीं मिला था।
पहला मामला:
id | qty1 | qty2 | qty3 | qty4
------------------------------
3 | 1.0 | 2.0 | 7.5 | 18
4 | 0.0 | 0.5 | 5 | 13
दूसरा मामला:
id | qty1 | qty2 | qty3 | qty4
------------------------------
2 | 0.0 | 0.0 | 0.0 | 7
3 | 1.0 | 2.0 | 7.5 | 18
4 | 0.0 | 0.5 | 5 | 13
(दूसरे मामले भी जटिल है, कैसे के बारे में प्राप्त करने के है:
id | qty1 | qty2 | qty3 | qty4
------------------------------
1 | 0.0 | 0.0 | 10 | 20
मूल qtys को जोड़कर क्योंकि पंक्ति 2 की 50 मान से अधिक हो जाएगी, मैंने इसे छोड़ दिया ... इस मामले में पूरक बस होना चाहिए:
id | qty1 | qty2 | qty3 | qty4
------------------------------
2 | 1.5 | 0.0 | 7.5 | 18
3 | 1.0 | 2.0 | 7.5 | 18
4 | 0.0 | 0.5 | 5 | 13
)
मैं जटिल प्रश्न के बहुत लिखा है, और मैं एक चुनौती पर ले जा पसंद है, लेकिन यह उन दुर्लभ मामलों केवल आपके प्रक्रियात्मक कोड लिखने के लिए भीख माँगता है कि में से एक है आपकी पसंद की भाषा में। सरलीकृत दूसरे मामले के लिए भी –
? पोस्ट के अंत में आखिरी वाले कोष्ठक में ...? –
सरलीकृत दूसरा मामला एक क्वेरी के रूप में करने योग्य है। यदि आप केवल अपने प्रश्न को संशोधित करने के लिए संशोधित करते हैं (या केवल एक नया प्रश्न बनाएं जो केवल इसके लिए पूछता है), तो मैं मदद कर सकता हूं। –