PDA

View Full Version : SQL zugriff zweimal auf selbe datei



steven_r
17-09-07, 15:25
Hallo *all

ich habe ein Problem, ich soll bei einer abfrage bei den SOLL Buchungen das Gegenkonto angeben das aber nur bei HABEN Buchungen vorhanden ist.
hier ein Auszug:

....+....1....+....2....+....3....+....4....+....5 ....+.
Mandant Hauptbeleg Sachkonto Unterkonto Soll-Haben
Nummer Kennzeichen

mnd 12345 1111 S
mnd 12345 2222 3333 H
mnd 12345 4444 S


Aussehen sollte es So:

mnd 12345 1111 LEER S 2222-3333(vom zweiten Satz)
mnd 12345 2222 3333 H
mnd 12345 4444 LEER S 2222-3333(vom zweiten Satz)

wie kann ich das mit einen SQL abbilden?

Danke und LG
steven_r

Fuerchau
17-09-07, 15:29
select a.feld1, a.feld2, ... , b.feld1
from myfile a
left join myfile b
on a.key1=b.key1 and a.key2=b.key2 ....

steven_r
17-09-07, 15:37
das geht so nicht da ich die Information beim ersten und dritten Satz brauche diese aber nur im zweiten Satz vorhanden sind.

lg
steven_r

Fuerchau
17-09-07, 16:13
Natürlich geht das genau So, da durch "Left Join" nur vorhandene Daten gelesen werden, ist kein Satz da, wird NULL zurückgegeben (Indikator!).

Fuerchau
17-09-07, 16:16
Ok, Entschuldigung.
Du musst dir da ein Zwischenergebnis mit umgekehrten Zugriff erstellen:

with
xHKO as (select HKO, UKO from myfile where UKO<>' ')
Select bla bla
left join xHKO x on a.uko=x.UKO

B.Hauser
17-09-07, 20:51
Hallo,

versuch's mal so:

with haben as (select * from MyTable
where SollHaben = 'H')
select s.*, case when s.SollHaben = 'S' then h.SachKto else 0 End,
case when s.SollHaben = 'S' then h.UnterKto else 0 End
from Mytable s join haben h using (Mandant, HauptBel)

Birgitta