IF Anweisung

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

IF Anweisung

Beitrag von Mathan (ForumUser / 5 / 0 / 0 ) »
Hallo Liebe SAP Freunde,

ich habe da mal eine Frage im Bereich Programmierung.

ich möchte gerne mit einer IF Anweisung in dem Prgramm
die felder nach Buchungskreis und Geschäftsbereich vergleichen.

zb:

if geschber=1414 eq p0001-gsber=1414
else
geschber=1423 eq p0001-gsber=1423
else
geschber=1400 eq p0001-gsber=1400

wenn alles nicht der fall sein sollte

where bukrs eq p0001-bukrs.

wie kann ich das programm technisch lösen?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Azreal (Specialist / 182 / 1 / 0 ) »
meinst du etwa sowas:

Code: Alles auswählen.

if geschber eq 1414 and  p0001-gsber eq 1414.

elseif geschber eq 1423 and  p0001-gsber eq 1423.

elseif geschber eq 1400 and  p0001-gsber eq 1400.

endif. 

Beitrag von Mathan (ForumUser / 5 / 0 / 0 ) »
Hallo Azreal,

vielen dank, genau das habe ich gemeint, wie kann ich aber am ende diese code noch einbauen?
nach dem IF Anweisungen soll dies abgefragt werden??
where bukrs eq p0001-bukrs.

etwa so?
if geschber eq 1414 and p0001-gsber eq 1414.

elseif geschber eq 1423 and p0001-gsber eq 1423.

elseif geschber eq 1400 and p0001-gsber eq 1400.

elseif bukrs eq p0001-bukrs.

endif.


gruß
Mathan

Beitrag von Azreal (Specialist / 182 / 1 / 0 ) »
...?

das kannst du doch aber auch seperat abhandeln...
erst denn großen if-block.
und darunter dann das if ob beide werte gleich sind.


oder folgendes ist auch denkbar:

Code: Alles auswählen.

if geschber eq p0001-gsber.
if p0001-gsber eq 1414.

elseif p0001-gsber eq 1423.

elseif p0001-gsber eq 1400.

endif. 
endif.
if bukrs eq p0001-bukrs.
endif.
oder willst du die bediengung parallel zu den anderen stellen:

Code: Alles auswählen.

if geschber eq p0001-gsber and bukrs eq p0001-bukrs.
if p0001-gsber eq 1414.

elseif p0001-gsber eq 1423.

elseif p0001-gsber eq 1400.

endif. 
endif.
if bukrs eq p0001-bukrs.
endif.
?

Beitrag von Mathan (ForumUser / 5 / 0 / 0 ) »
Hi kann ich das gleiche auch mit where anweisung schreiben??
anstatt mit if?
wenn ja kannst du mir mal ein beispiel zeigen.

danke im voraus

Beitrag von Azreal (Specialist / 182 / 1 / 0 ) »
nur keien scheu... warum hast du es denn überhaupt in 'where' ?
war es teil eines selects den du jetzt aufzudröseln versuchst?

Beitrag von Mathan (ForumUser / 5 / 0 / 0 ) »
hi, ja das stimmt das war ein teil des select.

habe es so gelöst:

select: gesnr fkennz geschber from zpa_tkdir_gesnr
into (z_gesnr,
z_fkennz )
where bukrs eq p0001-bukrs and
geschber eq 1423 and p0001-gsber eq 1350 and
geschber eq 1400 and p0001-gsber eq 1350 and
geschber eq 1414 and p0001-gsber eq 1350 and
geschber eq 1457 and p0001-gsber eq 1350.

endselect.

kann man das so machen??

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Mathan hat geschrieben: select: gesnr fkennz geschber from zpa_tkdir_gesnr
into (z_gesnr,
z_fkennz )
where bukrs eq p0001-bukrs and
geschber eq 1423 and p0001-gsber eq 1350 OR
geschber eq 1400 and p0001-gsber eq 1350 OR
geschber eq 1414 and p0001-gsber eq 1350 OR
geschber eq 1457 and p0001-gsber eq 1350.

endselect.

kann man das so machen??
Du musst mit OR verknüpfen nicht mit AND, sonst bekommst du kein Ergebnis.
Gruß Hendrik

Beitrag von GastX (Specialist / 277 / 4 / 18 ) »
Hallo,
'ne Frage: was ist denn p0001-gsber? Ein Feld von zps_tkdir_gesnr?
(Wenn nicht, wieso im Select?)

Wenn ja, das mit dem OR stimmt schon, nur muss man dann auch Klammern setzen, z.B. so

Code: Alles auswählen.

select: gesnr fkennz geschber from zpa_tkdir_gesnr
      into (z_gesnr,
             z_fkennz )
      where bukrs eq p0001-bukrs and 
     (
      geschber eq 1423 and p0001-gsber eq 1350 OR
      geschber eq 1400 and p0001-gsber eq 1350 OR
      geschber eq 1414 and p0001-gsber eq 1350 OR
      geschber eq 1457 and p0001-gsber eq 1350
     ).
	
    endselect.
und dann kann man das noch zusammenfassen, da p0001-gsber ja eh immer auf 1350 abgefragt wird:

Code: Alles auswählen.

select: gesnr fkennz geschber from zpa_tkdir_gesnr
      into (z_gesnr,
             z_fkennz )
      where bukrs eq p0001-bukrs and p0001-gsber eq 1350 and
     (
      geschber eq 1423  OR
      geschber eq 1400  OR
      geschber eq 1414  OR
      geschber eq 1457 
     ) .
	
    endselect.
oder noch kürzer

Code: Alles auswählen.

select: gesnr fkennz geschber from zpa_tkdir_gesnr
      into (z_gesnr,
             z_fkennz )
      where bukrs eq p0001-bukrs and p0001-gsber eq 1350 and
      geschber in ( 1423, 1400, 1414, 1457 ) .
	
    endselect.

Beitrag von Mathan (ForumUser / 5 / 0 / 0 ) »
Hallo Azreal,

vielen Dank für deine hilfe jetzt funktionirt das wieder.
:lol: :lol:

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1724
Views
Select-Anweisung
von phil1982 » 02.08.2007 08:30 • Verfasst in ABAP® für Anfänger
9
Antw.
6120
Views
Select-Anweisung
von ??? » 23.05.2005 10:22 • Verfasst in ABAP® für Anfänger
3
Antw.
6805
Views
Volldynamische If Anweisung
von TZI » 08.07.2011 11:32 • Verfasst in ABAP Objects®
11
Antw.
6112
Views
JOIN-Anweisung
von honeyjam » 04.01.2011 16:41 • Verfasst in ABAP® für Anfänger
2
Antw.
4824
Views
Tables-Anweisung
von Grado » 06.05.2005 13:40 • Verfasst in Basis

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2419
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9008