Hallo,
ich habe da ein ziemlich seltsames Problem mit einer SQL Anweisung
inkl. SUM() Funktion.
Hier erstmal die Datenbankstruktur:
Ich habe eine Tabelle mit Produkten:
- ProduktID (Primary Key)
- ProduktNr (nicht eindeutig, daher kein Primary Key)
- snr (Foreign Key, eindeutige Nummer der 'Verkaufsstelle')
- akt_preis
zusätzlich die Tabelle Produkt_verkauf
- ID (Primary Key)
- ProduktID (Foreign Key)
- anzahl
- Verkaufspreis
- Datum
Sinn des ganzen ist, denn Verkauf jedes Produktes chronologisch nach Datum abzulegen.
Nun möchte ich zu jedem Produkt, der 'Verkaufsstelle' 1260296
die Summe aller Verkäufe des aktuellen Tages, sowie die Gesamtverkäufe selektieren. Zusätzlich, die ProduktNr(t2) und den aktuellen Preis(t1).
Grupiert nach der Produktnummer.
Daraus ergab Sich nach meinem SQL Verständnis folgende Anweisung:
select P.ProduktID ,P.ProduktNr , P.akt_preis,
SUM(PVKa.anzahl) as anzahl_heute,
SUM(PVKb.anzahl) as anzahl_gesamt
from Verkaufsstelle V, Produkt P ,Produkt_verkauf PVKa ,
Produkt_verkauf PVKb
where V.snr=P.snr
and V.snr=1260296
and PVKa.datum >='1064959200' #Aktuelles Datum als Timestamp
and PVKa.datum <='1068245999'
and P.ProduktID =PVKa.ProduktID
and P.ProduktID =PVKb.ProduktID
group by P.ProduktNr
Das richtige Ergebniss sollte z.b. folgendermassen aussehen:
als Ausgabe bekomme ich aber:
D.H. Mysql scheint aus welchen Gründen auch immer die erste Zahl der Summen nochmal vor die Summe zu schreiben(aus 8 wird 88, aus 20-> 220,usw.)
Was mach ich hier falsch? Oder liegt das an Mysql???
Wäre super, wenn Ihr mir helfen könntet!
Danke
gruss
ich habe da ein ziemlich seltsames Problem mit einer SQL Anweisung
inkl. SUM() Funktion.
Hier erstmal die Datenbankstruktur:
Ich habe eine Tabelle mit Produkten:
- ProduktID (Primary Key)
- ProduktNr (nicht eindeutig, daher kein Primary Key)
- snr (Foreign Key, eindeutige Nummer der 'Verkaufsstelle')
- akt_preis
zusätzlich die Tabelle Produkt_verkauf
- ID (Primary Key)
- ProduktID (Foreign Key)
- anzahl
- Verkaufspreis
- Datum
Sinn des ganzen ist, denn Verkauf jedes Produktes chronologisch nach Datum abzulegen.
Nun möchte ich zu jedem Produkt, der 'Verkaufsstelle' 1260296
die Summe aller Verkäufe des aktuellen Tages, sowie die Gesamtverkäufe selektieren. Zusätzlich, die ProduktNr(t2) und den aktuellen Preis(t1).
Grupiert nach der Produktnummer.
Daraus ergab Sich nach meinem SQL Verständnis folgende Anweisung:
select P.ProduktID ,P.ProduktNr , P.akt_preis,
SUM(PVKa.anzahl) as anzahl_heute,
SUM(PVKb.anzahl) as anzahl_gesamt
from Verkaufsstelle V, Produkt P ,Produkt_verkauf PVKa ,
Produkt_verkauf PVKb
where V.snr=P.snr
and V.snr=1260296
and PVKa.datum >='1064959200' #Aktuelles Datum als Timestamp
and PVKa.datum <='1068245999'
and P.ProduktID =PVKa.ProduktID
and P.ProduktID =PVKb.ProduktID
group by P.ProduktNr
Das richtige Ergebniss sollte z.b. folgendermassen aussehen:
Code:
ID ProduktNR preis anzahl_heute anzahl_gesamt 1 10 300 8 8 2 11 320 20 20 3 12 320 40 40 ...
Code:
ID ProduktNR preis anzahl_heute anzahl_gesamt 1 10 300 88 88 2 11 320 220 220 3 12 320 440 440 ...
Was mach ich hier falsch? Oder liegt das an Mysql???
Wäre super, wenn Ihr mir helfen könntet!
Danke
gruss
Kommentar