Datensätze aus zwei Tabellen gruppieren/zählen

Fibu RHG

Neuer Benutzer
Beiträge
4
Ich habe folgendes Problem. Ich möchte aus zwei unterschiedlichen Tabellen Datensätze gruppiert zählen lassen. Dazu habe ich einzeln folgende SQL geschrieben:

select
Verkaeufer,
count (verkaeufer)
from cash_journal
where text = 'Bon'
and datum between '01.01.2020' and '30.04.2020'
group by rollup (Verkaeufer)
;
select
fakt_tech,
count (fakt_tech)
from fa
where (fakt_art = 'KLS' or fakt_art = 'KBV')
and
fakt_tgdat between '01.01.2020' and '30.04.2020'
group by rollup (fakt_tech)
;

Dabei sind die Felder "Verkaeufer" und "Fakt_tech" jeweils mit gleichen Inhalten gefüllt. Ich möchte nun gleich in einer Spalte ausgegeben haben, wie oft Verkaeufer 1 in cash_journal UND als fakt_tech in fa vorkommt. Die Lösung ist bestimmt ganz einfach, aber ich komme einfach nicht weiter. Vielen Dank!
 
Werbung:
UNION hat meine Freundschaftsanfrage bestätigt ;-) … allerdings hätte ich noch gern, dass die Anzahl der Verkäufer mit der Anzahl der fakt_tech summiert wird.
Also meine Ausgabe ist momentan so:

ALTEKA 14
ALTEKA 760
BERALE 20
BERALE 30

Ich hätte aber gern:

ALTEKA 774
BERALE 50

Das geht doch sicher auch noch?
 
sicher. Macher ERST das Union und DANN die Gruppierung. In etwa:

select ... from (select ... from ... UNION select ... from ...) bla group by ...
 
Habe es jetzt so versucht - leider nicht mit dem gewünschten Ergebnis. Bekomme jetzt die "neue" Anzahl, also entweder 1 oder 2

select
verkaeufer,
count (verkaeufer)
from (select
Verkaeufer,
count (verkaeufer)
from cash_journal
where text = 'Bon'
and datum between '01.01.2020' and '30.04.2020'
group by rollup (Verkaeufer)
union
select
fakt_tech,
count (fakt_tech)
from fa
where (fakt_art = 'KLS' or fakt_art = 'KBV')
and
fakt_tgdat between '01.01.2020' and '30.04.2020'
group by rollup (fakt_tech))
group by (verkaeufer);
 
nein, laß im Subselect das groub by rollup weg. Dort holst Du nur die Rohdaten aus den Tabellen, die Aggregation dann außen.
 
Werbung:
select
verkaeufer,
count(verkaeufer)
from
(select
verkaeufer,
datum
from cash_journal
where text = 'Bon'
and datum > '01.01.2020'
union all
select
fakt_tech,
fakt_tgdat
from fa
where (fakt_art = 'KLS' or fakt_Art = 'KBV')
and fakt_tgdat > '01.01.2020' )
group by verkaeufer
order by verkaeufer;

DANKE! Jetzt läuft es und die Werte passen auch
 
Zurück
Oben