๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿง‘‍๐Ÿ’ผ SAP/ABAP

[SAP ABAP] FOR ALL ENTRIES IN ์ด๋ž€? (์‚ฌ์šฉ ์˜ˆ์ œ ํฌํ•จ)

by Jay Din 2024. 6. 27.
728x90
๋ฐ˜์‘ํ˜•

1. FOR ALL ENTRIES IN ์ด๋ž€?

FOR ALL ENTRIES IN ๊ตฌ๋ฌธ์€ ABAP์—์„œ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” SQL ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ํ•„๋“œ๋ฅผ ํ•œ ๋ฒˆ์— ์กฐํšŒํ•  ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ž‘๋™ ์›๋ฆฌ

FOR ALL ENTRIES IN์€ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์—์„œ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ํšŸ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

FOR ALL ENTRIES IN์œผ๋กœ WHERE ์กฐ๊ฑด์„ ๋น„๊ตํ•˜๋ ค๋ฉด TYPE๊ณผ ๊ธธ์ด๊ฐ€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

2. FOR ALL ENTRIES IN ์‚ฌ์šฉ ์˜ˆ์ œ

DATA: lt_data TYPE TABLE OF mara,     " 'mara' ํ…Œ์ด๋ธ”์—์„œ ์ž์žฌ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•  ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”
      lt_result TYPE TABLE OF marc.   " 'marc' ํ…Œ์ด๋ธ”์—์„œ ํ”Œ๋žœํŠธ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”

" 'mara' ํ…Œ์ด๋ธ”์—์„œ ์ž์žฌ ๋ฒˆํ˜ธ๊ฐ€ 'A'๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ž์žฌ๋ฅผ ์กฐํšŒ
SELECT matnr
  INTO TABLE lt_data
  FROM mara
  WHERE matnr LIKE 'A%'.              " 'A'๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ž์žฌ ๋ฒˆํ˜ธ ์„ ํƒ

" ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์ด ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ๋‘ ๋ฒˆ์งธ ์กฐํšŒ ์ˆ˜ํ–‰
IF lt_data IS NOT INITIAL.
  " 'marc' ํ…Œ์ด๋ธ”์—์„œ ์ฒซ ๋ฒˆ์งธ ์กฐํšŒ ๊ฒฐ๊ณผ์˜ ์ž์žฌ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ํ”Œ๋žœํŠธ ์ •๋ณด๋ฅผ ์กฐํšŒ
  SELECT matnr werks
    INTO TABLE lt_result
    FROM marc
    FOR ALL ENTRIES IN lt_data
    WHERE matnr = lt_data-matnr.      " 'lt_data' ํ…Œ์ด๋ธ”์˜ ์ž์žฌ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ๋ ˆ์ฝ”๋“œ ์„ ํƒ
ENDIF.

 

  1. ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ๋น„์–ด ์žˆ์Œ ํ™•์ธ:
    • FOR ALL ENTRIES ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์ด ๋น„์–ด ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋น„์–ด ์žˆ์„ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ•„๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์กฐ๊ฑด ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์กฐํšŒ:
    • FOR ALL ENTRIES๋Š” ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ•„๋“œ์— ๋Œ€ํ•ด ์กฐ๊ฑด์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ํ•œ ๋ฒˆ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

3. FOR ALL ENTRIES IN ์žฅ์ 

  1. ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ:
    • ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ํ•œ ๋ฒˆ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
    • ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. ์ฝ”๋“œ ๊ฐ„๊ฒฐํ™”:
    • ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์–ด ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง‘๋‹ˆ๋‹ค.
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐœ๋ณ„ 'SELECT' ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹จ ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ํ•˜ ๊ฐ์†Œ:
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ ํšŸ์ˆ˜๋ฅผ ์ค„์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ํ•˜๋ฅผ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค.

 

4. FOR ALL ENTRIES IN ๋‹จ์ 

  1. ๋นˆ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์ฒ˜๋ฆฌ ๋ฌธ์ œ:
    • 'FOR ALL ENTRIES'๋Š” ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์ด ๋น„์–ด ์žˆ์„ ๋•Œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ•„๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์ด ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ถ”๊ฐ€ ๋กœ์ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ค‘๋ณต ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜:
    • ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์— ์ค‘๋ณต๋œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ์ค‘๋ณต๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์—์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ง‘๊ณ„ ํ•จ์ˆ˜์™€์˜ ํ˜ธํ™˜์„ฑ:
    • 'FOR ALL ENTRIES'๋Š” ์ง‘๊ณ„ ํ•จ์ˆ˜(์˜ˆ: MAX, SUM)์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    • ๋ณต์žกํ•œ ์ง‘๊ณ„ ์ž‘์—…์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

5. ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ์„ ์œ„ํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ:
    • ๋งŽ์€ ํ•„๋“œ๋ฅผ ํ•œ ๋ฒˆ์— ์กฐํšŒํ•  ๋•Œ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹จ์ผ ์กฐ๊ฑด ์กฐํšŒ๋ฅผ ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ๋กœ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์กฐ์ธ ์กฐ๊ฑด์ด ๋ณต์žกํ•˜์ง€ ์•Š์„ ๋•Œ:
    • ๊ฐ„๋‹จํ•œ ์กฐ๊ฑด์œผ๋กœ ์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•  ๋•Œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • ๋ณต์žกํ•œ ์กฐ์ธ ์กฐ๊ฑด์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ์กฐ์ธ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋นˆ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ๋ฏธ๋ฆฌ ํ™•์ธ:
    • ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์ด ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, 'IF lt_data IS NOT INITIAL.' ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์ฟผ๋ฆฌ ์‹คํ–‰์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  4. ๋นˆ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์ฒ˜๋ฆฌ ์˜ˆ์ œ
" ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์ด ๋น„์–ด ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
IF lt_data IS NOT INITIAL.
  SELECT matnr werks
    INTO TABLE lt_result
    FROM marc
    FOR ALL ENTRIES IN lt_data
    WHERE matnr = lt_data-matnr.
ENDIF.

 

6. ์ •๋ฆฌํ•˜๋ฉด,

FOR ALL ENTRIES ๊ตฌ๋ฌธ์€ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์„ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ๊ฐ„๋‹จํ•œ ์กฐ๊ฑด์œผ๋กœ ์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•  ๋•Œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‚ฌ์šฉ ์‹œ ๋นˆ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์ฒ˜๋ฆฌ, ์ค‘๋ณต ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜, ์ง‘๊ณ„ ํ•จ์ˆ˜์™€์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ ๋“ฑ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ์ ์ ˆํžˆ ์ฒ˜๋ฆฌํ•˜๋ฉด FOR ALL ENTRIES ๊ตฌ๋ฌธ์„ ํ†ตํ•ด ABAP ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


 

 

FOR ALL ENTRIES IN ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์ด ์™œ ๋” ํšจ์œจ์ ์ธ์ง€,
LOOP AT .. ENDLOOP ์•ˆ์—์„œ SELECT๋ฅผ ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„๊ตํ•˜์—ฌ ์žฅ๋‹จ์ ์„ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

1. ์˜ˆ์‹œ

MARA ํ…Œ์ด๋ธ”์—์„œ ์ž์žฌ ๋ฒˆํ˜ธ๊ฐ€ 'A' ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ์ž์žฌ๋ฅผ ์กฐํšŒํ•˜๊ณ ,

ํ•ด๋‹น ์ž์žฌ์˜ ํ”Œ๋žœํŠธ ์ •๋ณด๋ฅผ MARC ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

 

์ ‘๊ทผ ๋ฐฉ์‹1: LOOP AT .. ENDLOOP ์•ˆ์— SELECT

DATA: lt_data TYPE TABLE OF mara,
      lt_result TYPE TABLE OF marc,
      wa_data TYPE mara,
      wa_result TYPE marc.

" mara ํ…Œ์ด๋ธ”์—์„œ ์ž์žฌ ๋ฒˆํ˜ธ๊ฐ€ 'A'๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ž์žฌ๋ฅผ ์กฐํšŒ
SELECT matnr
  INTO TABLE lt_data
  FROM mara
  WHERE matnr LIKE 'A%'.

LOOP AT lt_data INTO wa_data.
  " ๊ฐ ์ž์žฌ์— ๋Œ€ํ•ด marc ํ…Œ์ด๋ธ”์—์„œ ํ”Œ๋žœํŠธ ์ •๋ณด๋ฅผ ์กฐํšŒ
  SELECT matnr werks
    INTO TABLE lt_result
    FROM marc
    WHERE matnr = wa_data-matnr.

  " ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง (์˜ˆ: lt_result๋ฅผ ๋‹ค๋ฅธ ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€)
  " ... (์ƒ๋žต)
ENDLOOP.

 

  • ์žฅ์ :
    • ๊ฐ ์ž์žฌ๋งˆ๋‹ค ๊ฐœ๋ณ„์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋ฏ€๋กœ ์ฝ”๋“œ๊ฐ€ ์ง๊ด€์ ์ด๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ ์กฐํšŒ์™€ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ํ•จ๊ป˜ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๊ฐ€๋…์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ :
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, lt_data์— 100๊ฐœ์˜ ์ž์žฌ๊ฐ€ ์žˆ์œผ๋ฉด MARC ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด 100๋ฒˆ์˜ SELECT ๋ฌธ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ˜ธ์ถœ์ด ๋งŽ์•„์ง€๋ฉด ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ํ•˜๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
* ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€๋ž€?
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ๊ฐ„์˜ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ๊ฐ„๊ณผ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ฆ๊ฐ€์‹œ์ผœ ์ „์ฒด ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ ‘๊ทผ ๋ฐฉ์‹ 2: FOR ALL ENTRIES IN ์‚ฌ์šฉ

DATA: lt_data TYPE TABLE OF mara,
      lt_result TYPE TABLE OF marc.

" mara ํ…Œ์ด๋ธ”์—์„œ ์ž์žฌ ๋ฒˆํ˜ธ๊ฐ€ 'A'๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ž์žฌ๋ฅผ ์กฐํšŒ
SELECT matnr
  INTO TABLE lt_data
  FROM mara
  WHERE matnr LIKE 'A%'.

" marc ํ…Œ์ด๋ธ”์—์„œ lt_data์˜ ์ž์žฌ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“  ํ”Œ๋žœํŠธ ์ •๋ณด๋ฅผ ์กฐํšŒ
IF lt_data IS NOT INITIAL.
  SELECT matnr werks
    INTO TABLE lt_result
    FROM marc
    FOR ALL ENTRIES IN lt_data
    WHERE matnr = lt_data-matnr.
ENDIF.

" ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง (์˜ˆ: lt_result๋ฅผ ๋‹ค๋ฅธ ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€)
" ... (์ƒ๋žต)

 

  • ์žฅ์ :
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, lt_data์— 100๊ฐœ์˜ ์ž์žฌ๊ฐ€ ์žˆ์–ด๋„ MARC ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ํ•œ๋ฒˆ์˜ SELECT๋ฌธ์œผ๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ˜ธ์ถœ์ด ์ค„์–ด๋“ค์–ด ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ํ•˜๊ฐ€ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.
    • ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ :
    • ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์ด ๋น„์–ด ์žˆ์„ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ๋กœ์ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. (IF lt_data IS NOT INITIAL).
    • ์ค‘๋ณต๋œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ค‘๋ณต๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์— ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ณต์žกํ•œ ์กฐ์ธ์ด๋‚˜ ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

 

2. ์ •๋ฆฌํ•˜๋ฉด

FOR ALL ENTRIES IN ๊ตฌ๋ฌธ์€ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์ด ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ถ”๊ฐ€ ๋กœ์ง๊ณผ ์ค‘๋ณต ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด, LOOP AT ... ENDLOOP ์•ˆ์—์„œ SELECT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์€ ์ง๊ด€์ ์ด์ง€๋งŒ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์•„์ ธ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” FOR ALL ENTRIES IN ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•