|
|
[MYSQL] Umsatzabfrage für bestimmte Monate oder ganzes Jahr
#214220
07/03/08 10:26
07/03/08 10:26
|
Joined: Apr 2005
Posts: 3,076 Germany, NRW
rvL_eXile
OP

3D Artist
|
OP

3D Artist
Joined: Apr 2005
Posts: 3,076
Germany, NRW
|
Hi zusammen, ich habe gerade ein kleines Problem mit ner mySQL Query. Ich muss aus einem Datensatz der mit einem ganzen "Text" (Text kann man sich als bestellformular vorstellen, welches Bestelldatum / BestellWert Brutto: enthält) gefüllt ist, einmel das Datum und einmal den Gesamtwert Brutto ausgeben. Nun sollena ber alle Daten von 01.06.2007 bis 31.06.2007 zusammen gefasst werden und der Gesamt Umsatz somit ermittelt werden. Hier mal meine mySQL Query:
SELECT SUBSTRING(bestellung,19,7) AS Datum,
SUM(LTRIM(SUBSTRING(bestellung,INSTR(bestellung,'Bestellwert Brutto:')+19,10))) AS 'Umsatz'
FROM TabellenName
WHERE SUBSTRING(bestellung,19,7)='06.2007'
GROUP BY 'Datum';
Ausgabe:
+---------+---------+
| Datum | Umsatz |
+---------+---------+
| 06.2007 | 44510.4 |
+---------+---------+
Beschreibung zur Query:SELECT SUBSTRING(bestellung,19,7) AS Datum,Dies selektiert mir das Datum, beispielsweise 06.2007. Die "19" steht für die Position wo das Datum steht. Die "7" bestimmt, das die nächsten sieben Zeichen welche nach den "19" Positionen kommen selektiert werden. SUM(LTRIM(SUBSTRING(bestellung,INSTR(bestellung,'Bestellwert Brutto:')+19,10))) AS 'Umsatz'LTRIM bestimmt, das alle Leerzeichen die vor dem Wert kommen gelöscht werden. Das INSTR in dem SUBSTING besagt, das die Position da ist, wo die beiden Wörter "Bestellwert Brutto:" vorkommen ist. +19,10 steht dafür das "Bestellwert Brutto:" übersprungen wird und alles was danach kommt selektiert wird (10 Zeichen lang) Hoffe das dies ausführlich genug beschrieben ist... Hier einmal das Beispiel, wie meine Ausgabe aussehen soll:
+---------+---------+
| Datum | Umsatz |
+---------+---------+
| 06.2007 | 44510.4 |
| 07.2007 | 15123.5 |
| 08.2007 | 68320.1 |
+---------+---------+
Hat einer dies bezüglich eine Idee? Mir fällt jedenfalls nichts ein... cYa Sebastian
Tutorials: [Blender]Terrain creation ENG/GER [Blender]Low Poly Tree Modeling [GIMP]Create a Texture for Terrains CLICK HERE
|
|
|
Re: [MYSQL] Umsatzabfrage für bestimmte Monate oder ganzes Jahr
[Re: checkbutton]
#214323
07/04/08 05:17
07/04/08 05:17
|
Joined: Apr 2005
Posts: 3,076 Germany, NRW
rvL_eXile
OP

3D Artist
|
OP

3D Artist
Joined: Apr 2005
Posts: 3,076
Germany, NRW
|
Meine Fresse? Wer speichert sämtliche Bestelldaten in einem ewig langen Text? Genau das hab ich mir auch gedacht... Kann SQL eigentlich regular expressions? Ja RegEx wird unterstützt, ich bezweifel aber, das ich damit das Problem lösen könnte...
Tutorials: [Blender]Terrain creation ENG/GER [Blender]Low Poly Tree Modeling [GIMP]Create a Texture for Terrains CLICK HERE
|
|
|
Re: [MYSQL] Umsatzabfrage für bestimmte Monate oder ganzes Jahr
[Re: rvL_eXile]
#214365
07/04/08 10:38
07/04/08 10:38
|
Joined: Jan 2003
Posts: 4,615 Cambridge
Joey
Expert
|
Expert
Joined: Jan 2003
Posts: 4,615
Cambridge
|
ich hab die frage zwar nicht gefunden, also interpretier ich mal. der query, den du da oben hast, liefert dir eine tabelle mit datum und umsatz. SELECT SUBSTRING(bestellung,19,7) AS Datum,
SUM(LTRIM(SUBSTRING(bestellung,INSTR(bestellung,'Bestellwert Brutto:')+19,10))) AS 'Umsatz'
FROM TabellenName
WHERE SUBSTRING(bestellung,19,7)='06.2007'
GROUP BY 'Datum'; und das gibt er dir aus. +---------+---------+
| Datum | Umsatz |
+---------+---------+
| 06.2007 | 44510.4 |
| 07.2007 | 15123.5 |
| 08.2007 | 68320.1 |
+---------+---------+ was du jetzt willst, ist, dass daraus noch ein gesamtumsatz ermittelt wird, ja? sonst hab ich dich falsch verstanden und du solltest die frage nochmal klar formulieren. probier mal das: SELECT SUM('Umsatz') AS 'Gesamt' FROM (SELECT SUBSTRING(bestellung,19,7) AS Datum,
SUM(LTRIM(SUBSTRING(bestellung,INSTR(bestellung,'Bestellwert Brutto:')+19,10))) AS 'Umsatz'
FROM TabellenName
GROUP BY 'Datum');wenn du das jetzt pro monat aufgeschlüsselt haben willst, kannst du ja in die äußere select-klausel noch den monat aus dem datum extrahieren und ein group by monat hinzufügen. grüße, joey
|
|
|
Re: [MYSQL] Umsatzabfrage für bestimmte Monate oder ganzes Jahr
[Re: checkbutton]
#214403
07/04/08 12:56
07/04/08 12:56
|
Joined: Jan 2003
Posts: 4,615 Cambridge
Joey
Expert
|
Expert
Joined: Jan 2003
Posts: 4,615
Cambridge
|
leute, wie beschreibt ihr denn eure probleme =). Er hat nur nen Query, der ihm für einen Monat den Gesamtumsatz liefert. Er will aber eine Liste mit allen Monaten. das in sql fertigzubringen ist in der tat schwieriger wie es für alle monate zu machen. vielleicht steht da die where-clausel im weg, weil die das für einen monat einschränkt? o.O komisch komisch. joey.
|
|
|
|