Frage von tobistar3, 28

kann mir wer sagen wie ich das mache (mysql)?

die aufgabe lautet:

Die Lieferung soll spätestens 14 Tage nach der Bestellung erfolgen. Geben Sie zu allen Bestellungen, die noch nicht geliefert wurden, das späteste Lieferdatum als virtuelle Spalte mit dem Bezeichner "späteste Lieferung" aus!


und das habe ich bis jetzt gemacht:

SELECT * FROM t_bestellungen WHERE Lieferdatum is NULL (SELECT Date(Bestelldatum) as späteste lieferung FROM t_bestellungen + 14 Day)

Antwort
von karinili, 20

Das müsste dir einen Syntax-Error werfen, gibt ja so überhaupt keinen Sinn. MySQL weiß weder, was man mit dem Subselect tun soll, noch wo die Zahl hinzugezählt wird bzw kann es nicht einfach zur Tabelle Bestellungen hinzufügen.

Du brauchst erst mal alle Spalten der Tabelle explizit und ein Coalesce für die ungelieferten Bestellungen. Damit das Coalesce ordnungsgemäß funktioniert brauchst du einen Outer Join bzw wenn du generell Nullwerte in deiner Tabelle hast, weil alles aus einer Tabelle ist (ist schwierig zu sagen, wenn man die Struktur nicht kennt) fällt das weg.

Du kannst das ganze auch mit einer When-Abfrage im Select lösen.

Auch interessant zu wissen wäre, in welchem Format du deine Zeitstempel hast. Sonst kann man dir schwer helfen.

Kommentar von tobistar3 ,

danke für die antwort aber ich hab die lösung jetzt und ja das war totaler quatsch (habs auch gepostet)

Antwort
von tobistar3, 23

mal wieder selbst erklärend lösung ist 

SELECT *, DATE_ADD(Bestelldatum, INTERVAL 14 DAY) AS Spaeteste_Lieferung
FROM t_bestellungen
WHERE Lieferdatum IS NULL

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten