Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL Tabellen verknüpfen mit group by

Frage Entwicklung Datenbanken

Mitglied: chb1982

chb1982 (Level 2) - Jetzt verbinden

10.09.2012, aktualisiert 12:53 Uhr, 3393 Aufrufe, 6 Kommentare

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
01.
select sum(Zugang) from Tabelle 1 group by Artikelnummer
in die gleiche Abfrage hätte ich dann gerne noch ein Feld aus der Tabelle2. Also
01.
select anfangsbestand-abgang+zugang as summe from Tabelle2
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
Mitglied: nxclass
10.09.2012, aktualisiert um 12:41 Uhr
.. mit einem JOIN deiner Wahl
01.
... FROM tabelle_1 INNER JOIN tabelle_2 ON tabelle_1.id = tabelle_2.ref_id ...
und einem
01.
SELECT ... SUM( tabelle_2.anfangsbestand - tabelle_2.abgang + tabelle_1.zugang ) AS 'Summe', ...
... wird das sicher was.
Bitte warten ..
Mitglied: chb1982
10.09.2012, aktualisiert um 12:53 Uhr
Leider nein, das hatte ich schon versucht. Da ich aus Tabelle1 die Summe je Artikel brauche nutze ich da group by. Das klappt nicht wirklich mit der Tabelle 2

Das wäre dann ja sowas


01.
select sum(tab1.absatz), tab2.anfbestand, tab2.artikelnummer from tab1 inner join tab2 on (tab1.artikel=tab2.artikel) 
02.
where tab1.datum < '01.01.2012' and tab1.filiale = 1 
03.
group by artikelnummer 
04.
order by artikelnummer 
05.
 
Geht aber nicht.
Bitte warten ..
Mitglied: Biber
10.09.2012, aktualisiert um 12:56 Uhr
Moin morpheus31337,

unter der naheliegenden Annahme, daas eine Verknüpfung über die Artikelnummer erfolgen kann:
01.
 
02.
SELECT Artikelnummer, 
03.
       Zugang 
04.
       Istbestand 
05.
    from ( 
06.
select Tab1.Artikelnummer, sum(tab1.zugang) as zugang, 
07.
       sum(tab2.anfangsbestand - tab2.abgang + tab1.zugang) as Istbestand 
08.
       FROM tablle1 tab1, tabelle2 tab2 
09.
       where tab1.artikelnummer=tab2.Artikelnummer 
10.
       GROUP BY tab1.Artikelnummer 
11.
) ;
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
Bitte warten ..
Mitglied: chb1982
10.09.2012 um 13:21 Uhr
Ich verzweifel noch.
Hier jetzt mal mit den richtigen Namen um Missverständnisse auszuschließen

01.
select Bereich, Warengruppe, Artikelgruppe, Artikelnummer, SumAbgang, AktBestand  
02.
from (  
03.
select bj.bj_ber as Bereich, bj.bj_wgr as Warengruppe, bj.bj_agr as Artikelgruppe, bj.bj_anr as Artikelnummer, 
04.
sum(bj.bj_plus) as SumAbgang, sum(bsd.bstd_anfbst-bsd.bstd_plus) as AktBestand 
05.
from bj, bsd  
06.
where 
07.
bj.bj_ber = bsd.bsd_at_at_se_se_ag_ag_wg and bj.bj_wgr = bsd.bsd_at_at_se_se_ag_ag_no and 
08.
bj.bj_agr = bsd.bsd_at_at_se_se_no and bj.bj_anr = bsd.bsd_at_at_no)  
09.
group by Bereich, Warengruppe, Artikelgruppe, Artikelnummer
Die Artkielnummer setzt sich aus Bereich, Warengruppe, Artikelgruppe, Artikelnummer zusammen und ist nur mit diesen drei Feldern eindeutig.
Tabelle bj hat alle Bestandsbuchungen
Tabelle bsd nur einen Datensatz je Artikel
Bitte warten ..
Mitglied: nxclass
10.09.2012 um 15:34 Uhr
Tabelle bsd nur einen Datensatz je Artikel
01.
sum(bsd.bstd_anfbst-bsd.bstd_plus) as AktBestand 
... das erscheint mir nicht richtig.

01.
bsd.bstd_anfbst-SUM(bj.bj_plus) as AktBestand 
Bitte warten ..
Mitglied: LianenSchwinger
10.09.2012, aktualisiert 11.09.2012
Hallo,

ich versuche mich auch einmal

01.
SELECT b.bsd_at_at_se_se_ag_ag_wg AS Bereich, 
02.
       b.bsd_at_at_se_se_ag_ag_no AS Warengruppe, 
03.
       b.bsd_at_at_se_se_no AS Artikelgruppe, 
04.
       b.bsd_at_at_no AS Artikelnummer, 
05.
       b.bstd_anfbst-b.bstd_plus AS AktBestand, 
06.
       NVL(c.SumAbgang,0) AS SumAbgang 
07.
FROM bsd AS b 
08.
LEFT JOIN (SELECT a.bj_ber,  
09.
                  a.bj_wgr,  
10.
                  a.bj_agr,  
11.
                  a.bj_anr, 
12.
                  SUM(a.bj_plus) AS SumAbgang, 
13.
           FROM bj AS a 
14.
           GROUP BY a.bj_ber,  
15.
                    a.bj_wgr,  
16.
                    a.bj_agr,  
17.
                    a.bj_anr) AS c ON c.bj_ber = b.bsd_at_at_se_se_ag_ag_wg  
18.
                                   AND c.bj_wgr = b.bsd_at_at_se_se_ag_ag_no 
19.
                                   AND c.bj_agr = b.bsd_at_at_se_se_no 
20.
                                   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
Bitte warten ..
Ähnliche Inhalte
Entwicklung
SQL GROUP BY Convert Datetime
gelöst Frage von StfnCstrEntwicklung4 Kommentare

Hallo Zusammen, ich sitze schon seit gefühlten Stunden an nem Script, ist wahrscheinlich sehr simpel, jedoch seh ich den ...

Datenbanken
MYSQL View group by
gelöst Frage von schneerunzelDatenbanken2 Kommentare

Hallo zusammen, ich habe eine Tabelle in einer MySQL DB über die ich eine View legen möchte: Die Tabelle ...

Datenbanken
SQL ORDER BY und Join mit 2 Tabellen
gelöst Frage von DippsDatenbanken7 Kommentare

Hallo an alle, ich versuche gerade eine Join mit 2 Tabellen auf zubauen und mir den letzten Datensatz Anzeigen ...

Datenbanken
SQL - Abfrage - Mehrere JOINS - Zusätzliche unterabfrage mit Group By
gelöst Frage von Andy1987Datenbanken4 Kommentare

Hallo Leute, ich habe mal wieder ein Problem mit einer SQL Abfrage. Es geht hierbei um Übersicht zur Netzwerkdokumentation, ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 6 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 11 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 11 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 23 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Windows Server
Remotesteuerung der Sitzung (Kennung XX) fehlgeschlagen
gelöst Frage von Stefan91Windows Server14 Kommentare

Hallo Zusammen, seit kurzem bekomme ich oben genannte Fehlermeldung, wenn ich versuche eine Remotesitzung über den Taskmanager fernzusteuern (Rechtsklick ...