winscheil 0 Geschrieben 23. März 2018 Melden Geschrieben 23. März 2018 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?
DerFrank 15 Geschrieben 2. Mai 2018 Melden Geschrieben 2. Mai 2018 Hi Du musst eine äußere schleife für auftrag bauen, dann sollte es auf die ganze quelltabell funktionieren. Vg DerFrank
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden