मैं एक प्रश्न पूछना चाहता हूं जो रिकॉर्ड के लिए एक निश्चित अन्य मान सही है तो दो मान/कॉलम का उपयोग करता है।दो कॉलम की तुलना में केस का चयन करें
मैं एक रिपोर्ट खाता जोत प्राप्त करने के लिए कोशिश कर रहा हूँ। दुर्भाग्य से डीबी आमतौर पर HoldingQty
नामक कॉलम में कैश का मूल्य संग्रहीत करता है, जबकि हर दूसरे प्रकार के होल्डिंग (स्टॉक, बॉन्ड, म्यूचुअल फंड) के लिए यह Qty
नामक कॉलम में संग्रहीत करता है।
समस्या यह है कि कभी-कभी नकद का मूल्य केवल Qty
में संग्रहीत होता है, और कभी-कभी यह Qty
और HoldingQty
दोनों में होता है। स्पष्ट रूप से कभी-कभी इसे ऊपर वर्णित अनुसार HoldingQty
में संग्रहीत किया जाता है।
असल में मैं अपने चयन का बयान कहना चाहता हूं कि "अगर सुरक्षा नकदी है, तो दोनों क्यूटी देखें और क्यूटी धारण करें और मुझे जो भी अधिक हो, उसका मूल्य दें। अन्यथा, अगर सुरक्षा नकद नहीं है तो मुझे क्यूटी दें" ।
मैं टी-एसक्यूएल में इसे कैसे लिखूं? यहाँ मेरी प्रयास है:
SELECT
h.account_name, h.security_name, h.security_type, h.price,
(CASE:
WHEN security_type = 'cash'
THEN (WHEN h.qty > h.holdingqty
THEN h.qty
ELSE h.holdingqty)
ELSE qty) as quantity,
h.total_value
FROM
holdings h
WHERE
...........
आप वाक्य रचना के अलावा लगभग देखते हैं। –
एक यौगिक मामले बयान 'केस का उपयोग करें जब SECURITY_TYPE = 'नकद' और h.qty <= h.holdingqty तो h.holdingqty quantity' रूप में किसी और h.qty अंत इस मूल रूप से कहते हैं जब प्रकार नकदी है और holdingqty है> या इसके बराबर qty उपयोग होल्डक्टी, अन्यथा qty का उपयोग करें। चूंकि हम जानते हैं कि यह नकद नहीं है, हम हमेशा qty का उपयोग करते हैं, मैंने केस स्टेटमेंट को सरल बनाने के लिए थोड़ा सा ऑर्डर बदल दिया। – xQbert
सावधान रहें कि क्या ये कॉलम शून्य हैं। – shawnt00