Zvoni
Erfahrenes Mitglied
Mahlzeit,
mir ist kein besserer Titel eingefallen.
Versuche gerade eine richtig harte Nuss zu knacken.
Hier ein fiddle zur Darstellung: DB Fiddle - SQL Database Playground
Problem:
Ich habe 3 Sätze/Aufträge im Verkauf, gleicher Artikel, unterschiedliches Lieferdatum
Ich habe 3 Sätze/Aufträge im Einkauf, gleicher Artikel, unterschiedliches Lieferdatum
Jetzt versuche ich (Siehe SQL im fiddle), die EK-Bestellungen an die richtige Stelle des Verkaufs zu "sortieren".
Dazu vergleiche ich im LEFT JOIN auf BETWEEN mit dem vorhergehenden VK-Datum und "aktuellem" VK-Datum.
Funzt einwandfrei solange ich in dem "VK-Zeitfenster" auch nur eine Bestellung habe.
(Im fiddle einfach beim letzten Orders-INSERT das Datum auf 2024-08-02 setzen, dann seht ihrs)
Habe ich zwei (oder mehr) EK-Bestellungen die in so ein Fenster passen, dupliziert (tripliziert usw.) es mir den VK-Satz
Wie bekomme ich es hin, dass die "überschüssige" EK-Bestellung dem "nächsten" VK-Satz zugeordnet wird?
Denke die ganze Zeit, es müsste über ein CASE WHEN gehen, aber ich komme nicht dahinter.
Prinzipiell: Es soll nur die tatsächliche Anzahl VK-Sätze mit "passenden" EK-Bestellungen angezeigt werden. "Überschüssige" EK-Bestellungen werden hinten raus ignoriert (Bsp. 3 VK-Sätze, aber 5 EK-Sätze die ins gesamte Zeitfenster passen, es sollen dann auch nur die ersten 3 EK-Bestellungen zu den VK-Sätzen zugeordnet werden).
Mir ist klar, dass ich das im Frontend, in welchem das SQL später genutzt wird per Code aufdröseln könnte.
Dazu müsste ich aber das SQL in zwei separate Abfragen splitten plus Durchlauf zweier verschachtelter Schleifen.
Bei im Schnitt 5K VK-Sätzen wird dass dann suboptimal
Hoffe ich war verständlich
mir ist kein besserer Titel eingefallen.
Versuche gerade eine richtig harte Nuss zu knacken.
Hier ein fiddle zur Darstellung: DB Fiddle - SQL Database Playground
Problem:
Ich habe 3 Sätze/Aufträge im Verkauf, gleicher Artikel, unterschiedliches Lieferdatum
Ich habe 3 Sätze/Aufträge im Einkauf, gleicher Artikel, unterschiedliches Lieferdatum
Jetzt versuche ich (Siehe SQL im fiddle), die EK-Bestellungen an die richtige Stelle des Verkaufs zu "sortieren".
Dazu vergleiche ich im LEFT JOIN auf BETWEEN mit dem vorhergehenden VK-Datum und "aktuellem" VK-Datum.
Funzt einwandfrei solange ich in dem "VK-Zeitfenster" auch nur eine Bestellung habe.
(Im fiddle einfach beim letzten Orders-INSERT das Datum auf 2024-08-02 setzen, dann seht ihrs)
Habe ich zwei (oder mehr) EK-Bestellungen die in so ein Fenster passen, dupliziert (tripliziert usw.) es mir den VK-Satz
Wie bekomme ich es hin, dass die "überschüssige" EK-Bestellung dem "nächsten" VK-Satz zugeordnet wird?
Denke die ganze Zeit, es müsste über ein CASE WHEN gehen, aber ich komme nicht dahinter.
Prinzipiell: Es soll nur die tatsächliche Anzahl VK-Sätze mit "passenden" EK-Bestellungen angezeigt werden. "Überschüssige" EK-Bestellungen werden hinten raus ignoriert (Bsp. 3 VK-Sätze, aber 5 EK-Sätze die ins gesamte Zeitfenster passen, es sollen dann auch nur die ersten 3 EK-Bestellungen zu den VK-Sätzen zugeordnet werden).
Mir ist klar, dass ich das im Frontend, in welchem das SQL später genutzt wird per Code aufdröseln könnte.
Dazu müsste ich aber das SQL in zwei separate Abfragen splitten plus Durchlauf zweier verschachtelter Schleifen.
Bei im Schnitt 5K VK-Sätzen wird dass dann suboptimal
Hoffe ich war verständlich