29. september 2004 - 19:10
Der er
1 løsning
indsætte/opdaterer en tabel fra en anden
Hej
Hjælp søges
Jeg har to tabeller, den første indeholder:
TABEL1
år mdr startdato
TABEL2
år mdr startdato slutdato antal_dage
Jeg skal nu indsætte de 3 kolonner fra tabel1 i tabel2 og samtidig beregne de sidste to kolonner i tabel...
Beregning af slutdato = næste startdato - 1 hvor år og mdr er magen til
Antal dage kan jeg så nok lige klare med en datediff, men jeg ville blive meget glad om nogen kunne give mig et T-sql eks. på hvordan ovenstående kan løses?
30. september 2004 - 14:55
#1
Hvad med sidste row, der kan ikke udregnes en slutdato??? der er jo ikke en næste start_dato
Løs problemet via cursors, psydo kode
declare @aar int, @mdr int, @start int, @slut int, @days int, @aar_new int, @mdr_new, @start_new
cursor #cur for
select ar, mdr, start from table1
open #cur
fetch next from #cur into @aar, @mdr, @start
while fetch_status = 0
begin
set @slut = NULL
set @days = NULL
fetch next from #cur into @aar_new, @mdr_new, @start_new
if @@fetch_status = 0 --der er en næste række
begin
set @slut = @start_new
set @days = datediff(...)
insert into table2 (aar, mdr, start, slut, days) values (@aar, @mdr, @start, @slut, @days)
end
set @arr=@arr_new
set @mdr=@mdr_new
set @start=@start_new
end
--dette burde klare dit problem, undtaget sidste række..
men HUSK DET ER PSYDO KODE!! DVS. DET SPILLER IKKE LIGE UD