Beantwortet

Bericht erstellen


Benutzerebene 1
Abzeichen

Hallo!

Wir wollen einen Bericht erstellen, dieser soll enthalten: die Kundennummer, den Namen, das Land, den Ort und die PLZ von Kunden, die einen bestimmten Artikel innerhalb eines bestimmten Zeitraums gekauft haben.

Zusätzlich soll die Anzahl der Artikel pro Kunde ausgegeben werden. 

 

Folgende SQL Abfrage habe ich dazu verfasst: 

 

SELECT 
adresse.kundennummer AS Kundennummer, 
adresse.name AS Name, 
adresse.ort AS Ort,
adresse.land AS Land,
adresse.plz AS PLZ,
rechnung_position.artikel*rechnung_position.menge AS Anzahl
FROM ((adresse INNER JOIN rechnung ON adresse.kundennummer=rechnung.kundennummer) INNER JOIN rechnung_position ON rechnung_position.rechnung=rechnung.id)
WHERE rechnung_position.artikel="1234" AND IF('{VON}'=0,1,r.datum>='{VON}') AND IF('{BIS}'=0,1,r.datum<='{BIS}');

 

Allerdings bekomme ich die Fehlermeldung

QUERY FAILED:
Database prepare failed. Error code #1064. Error message: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 101' at line 9

 

Ich weiß nicht genau, was ich falsch gemacht habe und wie ich den Fehler beheben kann. Kann mir jemand helfen? 

 

Vielen Dank und viele Grüße

Arden

icon

Beste Antwort von Matthias Beuck* 23 March 2022, 17:51

Original anzeigen

3 Antworten

Benutzerebene 7
Abzeichen +5

Das Semikolon am Ende ist zu viel. Ohne sollte es gehen. 

Benutzerebene 2
Abzeichen

Probiere es mal bitte damit:

 

SELECT
a.kundennummer AS Kundennummer,
a.name AS Name,
a.ort AS Ort,
a.land AS Land,
a.plz AS PLZ,
rp.artikel*rp.menge AS Anzahl
FROM adresse a
INNER JOIN rechnung r ON a.kundennummer = r.kundennummer
INNER JOIN rechnung_position rp ON rp.rechnung = r.id
WHERE rp.artikel="1234" AND IF('{VON}'=0,1,r.datum>='{VON}') AND IF('{BIS}'=0,1,r.datum<='{BIS}')

Benutzerebene 1
Abzeichen

Vielen Dank für die Hilfe! Jetzt klappt alles

 

 

Antworten