select a.su0003 as Datum,sum(a.su0005) AS Personalkosten, c.ma5006
from fibu.kontensummen a
join zmis.kontenplan b
join zmis.mandant c
on a.su0002 = b.kp0001
on a.ma0001 = c.ma0001
where a.ma0001='1000112000'
and b.kp0000 = c.ma5006
and a.su0003 between 2005-01-01 and 2005-12-31
and b.kp0003 = '430'
group by a.su0003 order by a.su0003;
bekomme einen Error: relation “a” does not exist!
warum???
Zugegeben, ich bin kein Experte, was JOINs angeht.
Aber “relation “a” does not exist” ist schon relativ eindeutig.
Kann es sein, das dein Tabellen-Alias “a” für “fibu.kontensummen” in dem JOIN nicht bekannt ist, daß es sich nur auf den vorstehenden SELECT bezieht?
Wenn ich das richtig interpretiere, hast du eigentlich gar keine Notwendigkeit Aliase zu verwenden, funktioniert dein Script vielleicht, wenn den alias wegläßt?
Wenn ich mich nicht vertippt habe - so:
select
kontensummen.su0003 as Datum,
sum(kontensummen.su0005) AS Personalkosten,
mandant.ma5006
from
fibu.kontensummen
join zmis.kontenplan
join zmis.mandant
on kontensummen.su0002 = kontenplan.kp0001
on kontensummen.ma0001 = mandant.ma0001
where kontensummen.ma0001='1000112000'
and kontenplan.kp0000 = mandant.ma5006
and kontensummen.su0003 between 2005-01-01 and 2005-12-31
and kontenplan.kp0003 = '430'
group by
kontensummen.su0003
order by
kontensummen.su0003;
(ich bin mal davon ausgegangen, daß “fibu.” und so deine Schemata sind)
Ach noch was … weil die Felder immer mit “ma…” beginnen, kann es sein, daß in der Zeile:
on a.ma0001 = c.ma0001
“a.ma0001” falsch ist? müßte das nicht aus der Tabelle: “mandant” welches den Alias “c” hat?!
also irgendwie funktioniert das leider immer noch nicht!
ich habs jetzt mal über ein subquery versucht…sieht dann so aus:
select a.su0003 as Datum,sum(a.su0005) AS Personalkosten
from fibu.kontensummen a
join zmis.kontenplan b
on a.su0002 = b.kp0001
where a.ma0001= '1234567890'
and b.kp0000 = (select ma5006 from zmis.mandant where ma0001 = '1000112000')
and a.su0003 between 2005-01-01 and 2005-12-31
and b.kp0003 = '430'
group by a.su0003 order by a.su0003
Hi Dusty,
hast du die Abfragen denn mal zerlegt???
select a.su0003 as Datum,a.su0005 as Personalkosten
from fibu.kontensummen a
where a.ma0001= ‘1234567890’
and a.su0003 between 2005-01-01 and 2005-12-31
select * from zmis.kontenplan b
where b.kp0003 = ‘430’
select ma5006 from zmis.mandant where ma0001 = ‘1000112000’
Soweit ich weiss müßte bei der Variante von dir SQL ein INNER JOIN verwenden. D.h. das alle selektierten Spalten müssen zusammenpassen. Ansonsten mal mit LEFT JOIN probieren.