Beantwortet

SQL-Query um Kopf-und Pos-Daten von "Auftrag/Auftrags_Pos" zu konsolidieren


Hallo zusammen, 

frohes neues Jahr erstmal :)

ich versuche gerade über das Berichte-Modul eine Abfrage zu erstellen, welche die Daten der Tabelle “Auftrag” und die Daten der Tabelle “Auftrags_Pos” konsolidiert zurückgibt. Das Abfrageergebnis soll dann in Excel weiterverarbeitet werden. 

 

Folgendes Statement habe ich, mithilfe des Moduls DB-Ansicht geschrieben. Bin mir hier aber nicht sicher, ob die Tabellen und Spalten hier richtig bezeichnet sind.

SELECT *
FROM auftrag
WHERE DATUM >= '21.12.2022 ' AND Status = 'angelegt'
JOIN auftrag_position on auftrag.id = auftrag_position.auftrag
GROUP BY Kundenname
ORDER BY Datum DESC;

 

Folgender Fehlertext wird ausgegeben:

QUERY FAILED:
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 'JOIN auftrag_position on auftrag.id = auftrag_position.auftrag
GROUP BY Kundenna' at line 4

Hat hier jemand eine Idee ? Ich kann jetzt erstmal keinen Syntax-Fehler erkennen.

Gibt es denn Möglichkeiten (außer über ein Backup) Queries in einer anderen Umgebung zu testen ?

Vielen Dank und Liebe Grüße

Simon

icon

Beste Antwort von Daniel Schmidtchen 4 January 2023, 12:26

Original anzeigen

2 Antworten

Benutzerebene 7
Abzeichen +5

Hey @Simon-VLYs ,

da stimmt einiges nicht. ;)

Das JOIN kommt vor das WHERE

DATUM, Status, Kundenname gibt es so in den Schreibweisen nicht in der Tabelle. 

Probier es mal so, fürchte aber mit dem SELECT * selektierst du über 200 Spalten aus der Auftragstabelle, dass wird sehr wahrscheinlich zum Timeout führen. 

Beste Grüße und happy coden,
Daniel

SELECT *
FROM auftrag 
JOIN auftrag_position on auftrag.id = auftrag_position.auftrag
WHERE auftrag.datum >= '21.12.2022 ' AND auftrag.status = 'angelegt'
GROUP BY auftrag.name
ORDER BY auftrag.datum DESC

Hey @Daniel Schmidtchen 

danke dir für den Hinweis :)

LG Simon

Antworten