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 ) » 06.09.2006 13:07
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?


Beitrag von Azreal (Specialist / 182 / 1 / 0 ) » 06.09.2006 13:17
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 ) » 06.09.2006 15:43
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 ) » 06.09.2006 16:11
...?

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 ) » 06.09.2006 16:16
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 ) » 06.09.2006 16:18
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 ) » 07.09.2006 08:58
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 / 1139 / 1 / 179 ) » 07.09.2006 09:16
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 / 275 / 4 / 14 ) » 07.09.2006 09:33
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 ) » 11.09.2006 10:49
Hallo Azreal,

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

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Wieso brauche ich hier Klammern?
vor 26 Minuten von IHe 2 / 14
SD-Konditionen auslesen
vor 45 Minuten von Geggo74 1 / 8
SapScript Frage
Gestern von a-dead-trousers 2 / 54

Vergleichbare Themen

Select-Anweisung...
von Nici » 19.07.2004 13:18
Volldynamische If Anweisung
von TZI » 08.07.2011 11:32
JOIN-Anweisung
von honeyjam » 04.01.2011 16:41
Select-Anweisung
von ??? » 23.05.2005 10:22
Tables-Anweisung
von Grado » 06.05.2005 13:40