SQL Tabellen verknüpfen mit group by
Hi,
ich bin gerade etwas verzweifelt und habe etliche Stunden google hinter mich gebracht ohne eine Lösung für mein Problem. Ich hoffe ich kann mich hier verständlich genug ausdrücken und jemand hat Hilfe für mich.
Es geht um eine Auswertung, die aus zwei Tabellen kommt.
Tabelle 1: Bestandsbuchungen
Tabelle 2: Bestandsdaten
In Tabelle 1 wird jede Veränderung im Bestand als Datensatz gespeichert.
In Tabelle 2 je Artikel ein Datensatz.
Ich brauche aus Tabelle 1 eine Summe je Artikel. Also
in die gleiche Abfrage hätte ich dann gerne noch ein Feld aus der Tabelle2. Also
Wie bekomme ich das nun zusammen in eine Abfrage, sodass ich am Ende eine Liste habe:
Artikelnummer - Summe aus Tab1 - Summer aus Tab2
Wahrscheinlich ist die Lösung endlos einfach
ich bin gerade etwas verzweifelt und habe etliche Stunden google hinter mich gebracht ohne eine Lösung für mein Problem. Ich hoffe ich kann mich hier verständlich genug ausdrücken und jemand hat Hilfe für mich.
Es geht um eine Auswertung, die aus zwei Tabellen kommt.
Tabelle 1: Bestandsbuchungen
Tabelle 2: Bestandsdaten
In Tabelle 1 wird jede Veränderung im Bestand als Datensatz gespeichert.
In Tabelle 2 je Artikel ein Datensatz.
Ich brauche aus Tabelle 1 eine Summe je Artikel. Also
select sum(Zugang) from Tabelle 1 group by Artikelnummer
select anfangsbestand-abgang+zugang as summe from Tabelle2
Artikelnummer - Summe aus Tab1 - Summer aus Tab2
Wahrscheinlich ist die Lösung endlos einfach
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 190957
Url: https://administrator.de/forum/sql-tabellen-verknuepfen-mit-group-by-190957.html
Ausgedruckt am: 11.04.2025 um 10:04 Uhr
6 Kommentare
Neuester Kommentar
Moin morpheus31337,
unter der naheliegenden Annahme, daas eine Verknüpfung über die Artikelnummer erfolgen kann:
Bei dieser Abrage würdest du nur die Sätze erwischen, die sowohl "Zugang" in der einen Tabelle wie auch "Abgänge" in der anderen Tabelle haben.
Wenn ALLE Artikelnummern (auch die, die "nur" einen Anfangsbestand ohne Bewegungsdaten haben-> ändern auch einen LEFT JOIN, ausgehend von der Tabelle, die auf jeden Fall einen "Artikelnummer"-Satz hat.
Grüße
Biber
unter der naheliegenden Annahme, daas eine Verknüpfung über die Artikelnummer erfolgen kann:
SELECT Artikelnummer,
Zugang
Istbestand
from (
select Tab1.Artikelnummer, sum(tab1.zugang) as zugang,
sum(tab2.anfangsbestand - tab2.abgang + tab1.zugang) as Istbestand
FROM tablle1 tab1, tabelle2 tab2
where tab1.artikelnummer=tab2.Artikelnummer
GROUP BY tab1.Artikelnummer
) ;
Bei dieser Abrage würdest du nur die Sätze erwischen, die sowohl "Zugang" in der einen Tabelle wie auch "Abgänge" in der anderen Tabelle haben.
Wenn ALLE Artikelnummern (auch die, die "nur" einen Anfangsbestand ohne Bewegungsdaten haben-> ändern auch einen LEFT JOIN, ausgehend von der Tabelle, die auf jeden Fall einen "Artikelnummer"-Satz hat.
Grüße
Biber
Hallo,
ich versuche mich auch einmal
Ausgehend von der Annahme, dass in der Tabelle bsd jeder Artikel vorkommt und in bj erst, wenn eine Bestandsbuchung erfolgt ist. Werden in bj nur Abgänge gespeichert oder auch Warenzugänge? Bei der Tabelle bsd blicke ich jedoch noch nicht ganz durch. Es gibt dort den Anfangsbestand bstd_anfbst ist soweit OK und ein Feld bstd_plus, was steht darin? Und wieso wird er vom Anfangsbestand abgezogen?
Gruß Jörg
ich versuche mich auch einmal
SELECT b.bsd_at_at_se_se_ag_ag_wg AS Bereich,
b.bsd_at_at_se_se_ag_ag_no AS Warengruppe,
b.bsd_at_at_se_se_no AS Artikelgruppe,
b.bsd_at_at_no AS Artikelnummer,
b.bstd_anfbst-b.bstd_plus AS AktBestand,
NVL(c.SumAbgang,0) AS SumAbgang
FROM bsd AS b
LEFT JOIN (SELECT a.bj_ber,
a.bj_wgr,
a.bj_agr,
a.bj_anr,
SUM(a.bj_plus) AS SumAbgang,
FROM bj AS a
GROUP BY a.bj_ber,
a.bj_wgr,
a.bj_agr,
a.bj_anr) AS c ON c.bj_ber = b.bsd_at_at_se_se_ag_ag_wg
AND c.bj_wgr = b.bsd_at_at_se_se_ag_ag_no
AND c.bj_agr = b.bsd_at_at_se_se_no
AND c.bj_anr = b.bsd_at_at_no
Ausgehend von der Annahme, dass in der Tabelle bsd jeder Artikel vorkommt und in bj erst, wenn eine Bestandsbuchung erfolgt ist. Werden in bj nur Abgänge gespeichert oder auch Warenzugänge? Bei der Tabelle bsd blicke ich jedoch noch nicht ganz durch. Es gibt dort den Anfangsbestand bstd_anfbst ist soweit OK und ein Feld bstd_plus, was steht darin? Und wieso wird er vom Anfangsbestand abgezogen?
Gruß Jörg