Jump to content

SQL Abfrage mit Schleife


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

ich habe eine Tabelle mit folgendem Aufbau:
AUFTRAG, START_TAG, ENDE_TAG, PRO_WOCHE
ABC, 2018-05-07, 2018-09-07, 38699,19
DEF, 2018-03-05, 2018-04-27, 3215,15
XYZ, 2018-07-23, 2018-11-09, 11315,35

Da ist der Auftrag, ein Starttag, ein Endtag und der Geldwert, der Pro Woche zwischen Starttag und Endtag anfällt.

Jetzt will ich eine Abfrage machen, die mir pro Woche in dem Zeitraum zwischen Starttag und Endtag eine neue Zeile erstellt.
Ich überprüfe den Starttag, ob er kleiner gleich dem Endtag ist und erhöhe den Starttag immer um eine Woche und vergleiche dann wieder.
Solange der Starttag nach den Erhöhungen kleiner als der Endtag ist, wird eine neue Zeile pro Woche erstellt.


Bsp:
AUFTRAG, DATUM, PRO_WOCHE
ABC, 2018-05-07, 38699
ABC, 2018-05-14, 38699
ABC, 2018-05-21, 38699
...
ABC, 2018-09-03, 38699

Das habe ich so gemacht:
declare @zaehler int
set @zaehler = 0
while @zaehler <=(selectDATEDIFF(WEEK,START_TAG,ENDE_TAG) from QUELLTABELLE where AUFTRAG ='123')
BEGIN
insert into ZIELTABELLE
select AUFTRAG,DATEADD(WEEK,@zaehler, START_TAG) as DATUM, PRO_WOCHE from QUELLTABELLE where AUFTRAG ='123'
set @zaehler += 1
END

Das funktioniert jetzt für einen Eintrag der obigen Quelltabelle.
Aber ich weiß jetzt nicht, wie ich das auf die ganze Quelltabelle ausbaue, dass für alle Einträge/Zeilen in der Quelltabelle neue Einträge/Zeilen in die Zieltabelle geschrieben werden.

Ich hoffe, ich habe alles verständlich erklärt.
Kann mir da jemand helfen?

Link zu diesem Kommentar
  • 1 Monat später...
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...