Jump to content
Sign in to follow this  
winscheil

SQL Abfrage mit Schleife

Recommended Posts

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?

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...