Zusammenfassen von Datensätzen bei Abfrage

Hier kommen Posts zu anderen Datenbanken als PostgreSQL rein.
Antworten
Freakster235
Neuer Benutzer
Beiträge: 2
Registriert: So 3. Apr 2011, 14:13

Zusammenfassen von Datensätzen bei Abfrage

Beitrag von Freakster235 » So 3. Apr 2011, 14:30

Hallo Leute,

ich bin absolut neu auf den gebiet der Datenbanken und auch der SQL abfragen. Ich habe hier eine Qracle datenbank laufen die normal mit einen Programm gefüttert und geändert wird. Es handelt sich hierbei um einen Kundenverwaltung und Bestellsystem.

Ich, möchte aber nun aus Daten aus der Datenbank abfragen. Der Aufbau sieht in etwas so aus:

Table1 (enthält die Kopfdaten zu den Bestellungen)
[ORDNR] [ORDDT] [ORDBY] [SECTION]
10001 01.04.11 555 Hardware
10005 30.03.11 555 Software
10008 20.03.11 555 Zubehoer
10009 20.03.11 556 Hardware

Table2 (enthält für die ORDNR die bestellten Artikel)
[ORDNR] [DESCR] [QTY] [PRICE]
10001 CD-ROM 2 31.15
10001 RAM 4 18.21
10001 KEYBOARD 2 52.26
10001 MAUS 9 12.33
10005 WINDOWS 2 118.15
10005 ORACLE 2 999.99
10008 KABEL 2 1.5
10008 TINTE 12 22.15
10008 GEHAEUSE 1 154.59


Ich hätte nun gerne als ergebnis meiner abfrage folgendes Bild:
Auftrags-Nr. Section Gesamtpreis
10001 Hardware 350.63
10005 Software 2236.28
10008 Zubehoer 191.74

Ich hoffe ihr könnt mir helfen. Die abfrage sollte dann auch noch nach Section separiert werden können. Aber ich denke das geht dann mit einer einfachen WHERE bedingung, hoffe ich.

Vielen Dank für eure Hilfe.

Gruß Freakster!

akretschmer
Erfahrener Benutzer
Beiträge: 7458
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Beitrag von akretschmer » So 3. Apr 2011, 14:53

Freakster235 hat geschrieben:Hallo Leute,

ich bin absolut neu auf den gebiet der Datenbanken und auch der SQL abfragen. Ich habe hier eine Qracle datenbank laufen die normal mit einen Programm gefüttert und geändert wird. Es handelt sich hierbei um einen Kundenverwaltung und Bestellsystem.

Ich, möchte aber nun aus Daten aus der Datenbank abfragen. Der Aufbau sieht in etwas so aus:

Table1 (enthält die Kopfdaten zu den Bestellungen)
[ORDNR] [ORDDT] [ORDBY] [SECTION]
10001 01.04.11 555 Hardware
10005 30.03.11 555 Software
10008 20.03.11 555 Zubehoer
10009 20.03.11 556 Hardware

Table2 (enthält für die ORDNR die bestellten Artikel)
[ORDNR] [DESCR] [QTY] [PRICE]
10001 CD-ROM 2 31.15
10001 RAM 4 18.21
10001 KEYBOARD 2 52.26
10001 MAUS 9 12.33
10005 WINDOWS 2 118.15
10005 ORACLE 2 999.99
10008 KABEL 2 1.5
10008 TINTE 12 22.15
10008 GEHAEUSE 1 154.59


Ich hätte nun gerne als ergebnis meiner abfrage folgendes Bild:
Auftrags-Nr. Section Gesamtpreis
10001 Hardware 350.63
10005 Software 2236.28
10008 Zubehoer 191.74

Ich hoffe ihr könnt mir helfen. Die abfrage sollte dann auch noch nach Section separiert werden können. Aber ich denke das geht dann mit einer einfachen WHERE bedingung, hoffe ich.

Vielen Dank für eure Hilfe.

Gruß Freakster!


Was da fehlt ist eine Verbindung zwischen den einzelnen Bestellungen und der SECTION von Dir da. Ansonsten bist Du auf der Suche nach sum(qty*price) und einem GROUP BY.

Andreas
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Freakster235
Neuer Benutzer
Beiträge: 2
Registriert: So 3. Apr 2011, 14:13

Beitrag von Freakster235 » So 3. Apr 2011, 15:27

akretschmer hat geschrieben:Was da fehlt ist eine Verbindung zwischen den einzelnen Bestellungen und der SECTION von Dir da. Ansonsten bist Du auf der Suche nach sum(qty*price) und einem GROUP BY.

Andreas


Hallo Andreas,

die beiden Tables oben waren nur beispiele. Ich habe nun 2 csv dateien angehängt mit daten aus der Datenbank, aus den beiden Tables.

Die Sache mit den SUM und Group BY hatte ich schin probiert, leider hat weder der betrag bei SUM gepasst noch wurde grupiert, es tauchten viele Bestellungen mehrfach auf.

im Table Orders sind die Bestllungen drin, bzw. die Headers dazu. Die ORGWON ist meine Auftragsnummer, STATUSDTE ist das letzte Änderungsdatum des Auftrags, WRKSTATUSCDE ist der Status des Auftrags, WRKCTRCDE und SHOPCDE ist die Abteilung in der der Auftrag ausgeführt wird.
im Table Artikel ist nun die Bestellnummer enthalten (ORGWON) die Artikelnummer (NIINPNO) die bestellte Anzahl (QTYREQUESTED) und derf Stückpreis (UNITPRICE).

Ich brauche nun in meiner Abfrage.
ORGWON
WRKSTATUSCDE
TOTALCOST (also alles Artikel*Menge für den Auftrag)

So ich hoffe nun ist besser, tut mir leid.

Gruß Freakster!

EDIT:

So ich habe nun das hier probiert:
SELECT WRKORDPART.ORGWON, SUM(WRKORDPART.UNITPRICE*WRKORDPART.QTYREQUESTED), COUNT(*)
FROM WRKORDPART
WHERE WRKORDPART.UIC = 'W1KKA3'
GROUP BY WRKORDPART.ORGWON

Das funktioniert hervorragend, aber nur solange nur ein table selected wird. sobald das 2 Table quasi die Auftragstabelle dazukommt, kommen nur noch wirre daten raus.
Auch wenn ich bei SELECT weitere Sachen zufüge klappts nicht mehr. Ich brauch ja noch mehr ausgaben als nur den Preis.

Bin ich echt zu doof?!

Gruß Freakster!
Dateianhänge
Tables.zip
(930 Bytes) 196-mal heruntergeladen

ads
Erfahrener Benutzer
Beiträge: 4148
Registriert: Mi 8. Feb 2006, 10:58
Wohnort: MD
Kontaktdaten:

Beitrag von ads » So 3. Apr 2011, 19:43

Bist du dir sicher, hier im richtigen Forum zu sein?

Support für Oracle gibt es direkt beim Hersteller. Hier geht es nur um PostgreSQL.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören Bild

Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

PostgreSQL Service & Support

Gisman
Erfahrener Benutzer
Beiträge: 1094
Registriert: Fr 20. Jan 2006, 15:30
Wohnort: Pfalz
Kontaktdaten:

Beitrag von Gisman » Mo 4. Apr 2011, 09:49

Freakster235 hat geschrieben:...wirre daten...
[...]
Bin ich echt zu doof?!

Gruß Freakster!


'Wirre Daten' hat AFAIK noch keine ORA-Nummer. Immerhin liefert es Daten, was bei Oracle nicht immer obligatorisch ist. Also bist du auch nicht zu doof ;)
Der Fehler dürfte IMHO an der Verknüpfung der beiden Tabellen liegen, poste doch mal die Abfrage, die die wirren Daten liefert...

Gruß Uwe
Have a lot of fun!

Antworten