Moin Xentraleers,
wir haben im Versand einen Monitor, auf dem wir zeigen wollen, wie viele Aufträge heute noch erfüllt werden müssen. Ich habe mir dazu einen Bericht gebaut, den ich per importdata in ein Google Sheet ziehe, welches dann auf einer Webseite integriert ist, die sich alle 60 Sekunden selber neu lädt. Klappt alles bestens, bis auf eine Kleinigkeit in der Abfrage. Hier einmal der Code:
SELECT
a.Belegnr AS Auftragsnummer,
a.Datum AS Auftragsdatum,
a.internet AS Internetnummer,
CASE
WHEN a.projekt = 1 THEN 'Marktplatz 1'
WHEN a.projekt = 2 THEN 'Marktplatz 2'
WHEN a.projekt = 3 THEN 'Marktplatz 3'
WHEN a.projekt = 4 THEN 'Marktplatz 4'
ELSE 'Other'
END as Plattform,
CASE
WHEN a.versandart = 'amazonprime' THEN 'Prime'
ELSE 'Standard'
END as Versandart,
CASE
WHEN a.Status = 'freigegeben' THEN 'Hängt im Batch'
WHEN v.Klaergrund <> '' THEN 'Hängt im Versand (Klärfall)'
ELSE 'Hängt im Versand'
END as Status,
CONCAT('https://XXXXXXX.xentral.biz/index.php?module=auftrag&action=edit&id=',a.id) AS Link
FROM auftrag a
LEFT JOIN lieferschein l ON a.id = l.auftragid
LEFT JOIN versand v ON l.id = v.Lieferschein
LEFT JOIN auftrag_protokoll ap ON a.id = ap.auftrag
WHERE a.Status <> 'storniert' AND a.Datum > CURDATE()-INTERVAL 30 DAY AND a.projekt IN (1,2,3,4) AND (v.Tracking IS NULL OR v.Tracking ='') AND (IF((a.versandart = 'amazonprime' AND ap.Zeit < CONCAT(CURDATE(), ' 14:15:00'))OR a.Datum < CURDATE(),1,0) = 1) AND ap.Grund = 'Auftrag importiert vom Shop'
GROUP BY a.Belegnr
Mein Problem ist folgender Part:
v.Tracking IS NULL OR v.Tracking =''
Damit möchte ich Aufträge ausschließen, die schon eine Sendungsnummer haben, also bereits versendet sind. Wenn Aufträge im Versandzentrum mehrfach angefasst werden (z.B. weil bei der Erstellung des Labels mal ein Fehler auftritt), gibt es für diese Aufträge aber mehrere Einträge in der “versand” Tabelle und bei einem davon bleibt v.Tracking = 0. Wie kann ich die Abfrage umbauen, dass nur Aufträge im Ergebnis sind, bei denen alle v.Tracking Felder leer sind? Oder gibt es eine bessere Einschränkung, um nur Aufträge im Ergebnis zu behalten, die nicht versendet wurden?
Danke & Grüße,
Torge