मुझे लेनदेन तालिका में राशि कॉलम पर शुल्क लागू करना होगा। यदि राशि 5000 से अधिक है तो मुझे प्रत्येक लेनदेन के लिए 17.5 आवेदन करना होगा और अंत में राशि लेनी होगी। यदि राशि 5000 से कम है तो मुझे राशि पर प्रतिशत सूत्र लागू करना होगा और फिर उसका योग अंत में लेना होगा। नीचे मेरी क्वेरी है लेकिन मुझे नीचे अपवाद मिल रहा है:

SELECT 
        CASE  
        When tran_amount_req >= 5000 Then sum(17.5) 
        When tran_amount_req < 5000 Then sum(((tran_amount_req/100) * 0.35)/100) 
        End as MyPercent
        from gstl_trans_temp
        where (message_type_mapping = '0220') and card_type ='GEIDP1'

कॉलम gstl_trans_temp.tran_amount_req चयन सूची में अमान्य है क्योंकि यह या तो एक समग्र कार्य या ग्रुप बाय क्लॉज में शामिल नहीं है।

कृपया मदद करें, अग्रिम धन्यवाद।

-2
Talib 5 जिंदा 2021, 12:15
त्रुटि बहुत स्पष्ट है, आप इसके बारे में क्या नहीं समझते हैं?
 – 
HoneyBadger
5 जिंदा 2021, 12:16
2
और आपके WHERE-Clause का कुछ भाग संदिग्ध लगता है और tran_amount_req >= 10000
 – 
Sergey
5 जिंदा 2021, 12:17
हमें कुछ नमूना तालिका डेटा और अपेक्षित परिणाम दिखाएं - सभी स्वरूपित पाठ (कोई चित्र नहीं) के रूप में। न्यूनतम प्रतिलिपि प्रस्तुत करने योग्य उदाहरण
 – 
jarlh
5 जिंदा 2021, 12:19
आप सही कह रहे हैं, गलती से हो गया, लेकिन गलती ठीक करने के बाद भी वही रहती है।
 – 
Talib
5 जिंदा 2021, 12:25
नहीं, मुझे समझ नहीं आ रहा है कि इसे कैसे ठीक किया जाए। क्षमा करें, मैं पहली बार CASE का उपयोग कर रहा हूं।
 – 
Talib
5 जिंदा 2021, 12:25

1 उत्तर

सबसे बढ़िया उत्तर

क्या आप निम्नानुसार सशर्त एकत्रीकरण चाहते हैं?

SELECT sum(CASE When tran_amount_req >= 5000 then 17.5 
                else ((tran_amount_req/100) * 0.35)/100 
           End) as MyPercent
 from gstl_trans_temp
where message_type_mapping = '0220' 
  and card_type ='GEIDP1'
2
Popeye 5 जिंदा 2021, 12:28
बहुत बहुत धन्यवाद महोदय, मैं यही चाहता था।इससे मुझे वास्तव में मामले को समझने में मदद मिली।
 – 
Talib
5 जिंदा 2021, 12:40
सिर्फ एक और सवाल, मैं MyPercent को एक चर में कैसे पास कर सकता हूं जिसे चलो abc कहते हैं?
 – 
Talib
5 जिंदा 2021, 12:46