तो basicially वहाँ 1 प्रश्न और 1 समस्या है:एसक्यूएल। मामला-मान की आवश्यकता है लेकिन रो-मूल्य प्राप्त
1. प्रश्न - मैं एक तालिका में 100 कॉलम की तरह है जब (और कोई कुंजी या uindex सेट किया गया है) और मैं उस टेबल को अपने साथ जोड़ना या उप-चयन करना चाहता हूं, क्या मुझे वास्तव में हर कॉलम नाम लिखना है?
2. समस्या - नीचे दिए गए उदाहरण 1. प्रश्न पता चलता है और अपने वास्तविक एसक्यूएल बयान समस्या
उदाहरण:
A.FIELD1,
(SELECT CASE WHEN B.FIELD2 = 1 THEN B.FIELD3 ELSE null FROM TABLE B WHERE A.* = B.*) AS CASEFIELD1
(SELECT CASE WHEN B.FIELD2 = 2 THEN B.FIELD4 ELSE null FROM TABLE B WHERE A.* = B.*) AS CASEFIELD2
FROM TABLE A
GROUP BY A.FIELD1
कहानी है: अगर मैं मामला डाल नहीं अपने स्वयं के चयन वक्तव्य में मुझे वास्तविक राउनम को ग्रुप बाय में रखना होगा और ग्रुप BY सीएएसई से न्यूल-वैल्यू को समूहित नहीं करता है बल्कि पंक्ति से वास्तविक मूल्य है। और इसके कारण मुझे या तो सभी स्तंभों के साथ जुड़ना या उप-चयन करना होगा, क्योंकि कोई कुंजी नहीं है और कोई यूंडेक्स नहीं है, या किसी अन्य समाधान को ढूंढें।
डीबीएसरवर डीबी 2 है।
तो अब शब्दों के साथ इसका वर्णन करने के लिए और कोई SQL: मेरे पास "ऑर्डर आइटम" है जिसे "ZD" और "EK" (1 = ZD, 2 = EK) में विभाजित किया जा सकता है और इसे " वितरक "। हालांकि "ऑर्डर आइटम" में दो अलग-अलग "विभाग" (जेडडी, ईके) में से एक हो सकता है, "ZD" और "EK" के लिए फ़ील्ड/पंक्तियां हमेशा भर जाती हैं। मुझे "विभाग" पर विचार करने के लिए समूह की आवश्यकता है और केवल तभी नामित "विभाग" (जेडडी या ईके) बदल रहा है, तो मैं एक नया समूह बनाना चाहता हूं।
SELECT
(CASE WHEN TABLE.DEPARTEMENT = 1 THEN TABLE.ZD ELSE null END) AS ZD,
(CASE WHEN TABLE.DEPARTEMENT = 2 THEN TABLE.EK ELSE null END) AS EK,
TABLE.DISTRIBUTOR,
sum(TABLE.SOMETHING) AS SOMETHING,
FROM TABLE
GROUP BY
ZD
EK
TABLE.DISTRIBUTOR
TABLE.DEPARTEMENT
यह यहां ग्रुप बाय में SELECT और ZD, EK में काम किया। केवल समस्या थी, भले ही ईके नामित डिप्टीमेंट नहीं था, फिर भी अगर यह बदल गया तो यह एक नया समूह खोला गया, क्योंकि वह वास्तविक ईके मूल्य का उपयोग कर रहा था, न कि केस से न्यूल, क्योंकि मैं पहले से ही ऊपर बता रहा था।
की तरह कुछ को हल करने के लिए करते हैं हो सकता है आप एक ही साथ तालिका ख में स्तंभ के लिए मेज एक के प्रत्येक स्तंभ के मूल्य की जाँच मतलब है कॉलम नाम, और सभी कॉलम मेल खाना चाहिए? या आप का मतलब किसी अन्य प्रकार का तर्क है? – WarrenT
बिल्कुल, लेकिन यह केवल सवाल है, असली समस्या नहीं है, जिसे मैं निकटतम समय में आगे/बेहतर समझाऊंगा। – Khazar