Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

SAP ABAP में NUMC टाइप फील्ड पर SUM फंक्शन का उपयोग

NUMC (Numeric Character) एक टेक्स्ट-आधारित डेटा टाइप है जो केवल अंक स्टोर करता है, लेकिन डेटाबेस में यह VARCHAR की तरह व्यवहार करता है। इसलिए इस पर सीधे SUM() एग्रीगेट फंक्शन लागू नहीं किया जा सकता।

समस्या

-- यह काम नहीं करेगा:
SELECT SUM(numc_field) FROM table_name;  -- त्रुटि या गलत परिणाम

समाधान: आंतरिक टेबल में कन्वर्ट करके SUM करें

चूंकि कोई सीधा समाधान नहीं है, निम्न दृष्टिकोण अपनाएं:

DATA: lt_source TYPE TABLE OF your_table,
      lt_conv   TYPE TABLE OF ty_conv,  -- कन्वर्टेड टाइप के साथ
      ls_conv   TYPE ty_conv.

TYPES: BEGIN OF ty_conv,
         numc_field TYPE numc10,  -- मूल NUMC फील्ड
         dec_field  TYPE p DECIMALS 2,  -- डेकिमल में कन्वर्टेड
       END OF ty_conv.

" 1. डेटा आंतरिक टेबल में पढ़ें
SELECT * FROM your_table INTO TABLE lt_source.

" 2. लूप करके NUMC को DEC में कन्वर्ट करें
LOOP AT lt_source INTO DATA(ls_src).
  ls_conv-numc_field = ls_src-numc_field.
  ls_conv-dec_field  = ls_src-numc_field.  " इम्प्लिसिट कन्वर्जन
  APPEND ls_conv TO lt_conv.
ENDLOOP.

" 3. DEC फील्ड पर SUM और GROUP BY करें
DATA: lt_sum TYPE TABLE OF ty_sum.
TYPES: BEGIN OF ty_sum,
         key_field TYPE ...,
         total     TYPE p DECIMALS 2,
       END OF ty_sum.

LOOP AT lt_conv INTO ls_conv GROUP BY ls_conv-key_field ASCENDING.
  DATA(lv_sum) = 0.
  LOOP AT GROUP ls_conv INTO DATA(ls_grp).
    lv_sum = lv_sum + ls_grp-dec_field.
  ENDLOOP.
  " परिणाम स्टोर करें
  APPEND VALUE #( key_field = ls_conv-key_field total = lv_sum ) TO lt_sum.
ENDLOOP.

" 4. आवश्यकतानुसार वापस NUMC में कन्वर्ट करें

आधुनिक ABAP (7.40+) में सरल तरीका

SELECT key_field, 
       CAST(numc_field AS DEC(15,2)) AS dec_val
  FROM your_table
  INTO TABLE @DATA(lt_data).

lt_data = VALUE #( 
  FOR GROUPS grp OF  IN lt_data GROUP BY ( key_field = -key_field )
  ( key_field = grp-key_field
    total = REDUCE #( INIT sum = 0 FOR m IN GROUP grp NEXT sum = sum + m-dec_val ) ) ).

सारांश

  • NUMC टेक्स्ट है, संख्या नहीं → SUM सीधे असंभव
  • आंतरिक टेबल में कन्वर्ट करें (NUMC → DEC/INT)
  • कन्वर्टेड फील्ड पर एग्रीगेशन करें
  • आवश्यकता हो तो वापस NUMC में बदलें
  1. शुरुआती के लिए Microsoft Word ट्यूटोरियल - उपयोग करने का गाइड शुरुआती के लिए Microsoft Word ट्यूटोरियल - उपयोग करने का गाइड

    यह Microsoft Word शुरुआती गाइड MS Office Word सॉफ्टवेयर सीखने के लिए मुफ्त और बुनियादी पाठ, ट्यूटोरियल और बुनियादी बातें प्रदान करता है। Microsoft Word हर किसी का पसंदीदा टेक्स्ट एडिटर है। इतनी सारी सुविधाओं के साथ, यह आपकी सभी आवश्यकताओं को पूरा कर सकता है। यह शुरू में उपयोग करने में जटिल लग सकता ह

  1. एंड्रॉइड के लिए Firefox के ScreenshotGo का उपयोग कैसे करें एंड्रॉइड के लिए Firefox के ScreenshotGo का उपयोग कैसे करें

    स्क्रीनशॉट एक कंप्यूटर मॉनिटर, टेलीविजन, या अन्य दृश्य आउटपुट डिवाइस पर दिखाई देने वाली चीजों की एक डिजिटल छवि है। आप कभी-कभी उन्हें स्क्रीन कैप्चर या स्क्रीनग्रैब के रूप में संदर्भित सुनते हैं। लोग स्क्रीनशॉट का उपयोग सभी प्रकार के कारणों से करते हैं, लेकिन बाद में स्क्रीनशॉट ढूंढना चुनौतीपूर्ण हो

  1. एक्सेल में CONCATENATE फंक्शन का उपयोग कैसे करें एक्सेल में CONCATENATE फंक्शन का उपयोग कैसे करें

    एक्सेल में CONCATENATE फंक्शन आपको टेक्स्ट-आधारित सेल्स को अधिक आसानी से मैनिपुलेट करने में मदद करता है। जबकि संख्याओं पर गणना करने के लिए बहुत सारे फंक्शन हैं, यह फंक्शन कई टेक्स्ट सेल्स को एक सेल में एक साथ लाने में मदद करता है। कोई फर्क नहीं पड़ता कि टेक्स्ट क्या है, आप मूल सेल्स में कुछ भी बदले