ho sql server
avendo 2 date, devo inserire in una seconda tabella tanti valori quanto la differenza in mesi
sto pensando ad un cursore ,ma non so ..forse mi sono incasinato a pensare, esistono altri modi?
grazie
ho sql server
avendo 2 date, devo inserire in una seconda tabella tanti valori quanto la differenza in mesi
sto pensando ad un cursore ,ma non so ..forse mi sono incasinato a pensare, esistono altri modi?
grazie
NN vi diro mai chi sono in realta,
tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me
fa' un esempio
declare @campo1: '11-02-2000'
declare @campo2: '20-05-2000'
la differenza è 3 mesi
quindi inserisco 3 record in una tabella
la mia domanda è invece di usare i cursori se esiste un'altro modo tutto qua@datediff=dselect atediff(month,campo1,campo1)
OPEN @MyCursor
FETCH NEXT FROM @MyCursor
INTO ***
WHILE @@FETCH_STATUS = 0
BEGIN![]()
NN vi diro mai chi sono in realta,
tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me
Si, più o meno così
dove dbo.tbNumConsecutivi contiene i numeri consecutivi da 1 fino a ... quello che ti servecodice:insert into tua_tab (num) select Q.Num from ( select Num from dbo.tbNumConsecutivi WHERE Num <=datediff(Month,@dIni,@dFin) ) Q
P.S.
dai un occhio qui ,al metodo proposto da Itzik Ben Gan, se non vuoi usare la tabella dbo.tbNumConsecutivi
http://forum.masterdrive.it/blogs/ss...-festivit-116/
HTH
puoi provare con un ciclo WHILE. qui https://msdn.microsoft.com/it-it/lib...or=-2147217396 la teoria
strano , ma non riesco a trovare l'errore in questa SP che ho appena fatto
mi inserisce valori nella tabella: T1 all'infinito senza aggiungere il mese
codice:ALTER procedure S as Declare @A date Declare @B date Declare @C Date ----------------------------------------------------- DECLARE @MyCursor CURSOR SET @MyCursor = CURSOR FAST_FORWARD FOR SELECT data1,data2,data3 FROM DLEFT OPEN @MyCursor FETCH NEXT FROM @MyCursor --valorizzo variabili INTO @A,@B,@C WHILE @@FETCH_STATUS = 0 BEGIN declare @MesiDiff int set @MesiDiff=(select DATEDIFF(MONTH,@A,@B)) --primo range DECLARE @mesi INT = 0; WHILE @mesi < @MesiDiff BEGIN insert into T1([data]) values--,fase,MW,Area,technology,country) values ( DATEADD(month,@mesiDiff,@A) ) SET @mesi = @mesi + 1; END; FETCH NEXT FROM @MyCursor -- --INTO @ProjectCode END CLOSE @MyCursor DEALLOCATE @MyCursor
Ultima modifica di Kahm; 23-06-2016 a 12:23
NN vi diro mai chi sono in realta,
tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me