Sollicitatievraag
Sollicitatiegesprek voor de functie SQL Developer
-
ISN SoftwareGiven 2 dates, return a result set that outputs a number for each week between the two. (They will ask the numbered week to be the sequential week and also the calendar week. Prepare for given start date to be start mid-week.)
Antwoorden op sollicitatievragen
3 antwoorden
--Given 2 dates, return a result set that outputs a number for each week between the two. (They will ask the numbered week to be the sequential week and also the calendar week. Prepare for given start date to be start mid-week.) declare @temp date, @d date = '2020-01-01', @dd date = '2020-03-01', @i int = 0 declare @t table (w int, d date); declare @w int, @wp int = 0 set @temp = @d; while @temp @wp begin insert into @t values (@w, @temp) set @wp = @w end end select * from @t;
Ertan Asan op
--Given 2 dates, return a result set that outputs a number for each week between the two. (They will ask the numbered week to be the sequential week and also the calendar week. Prepare for given start date to be start mid-week.) declare @temp date, @d date = '2020-01-01', @dd date = '2020-03-01', @i int = 0 declare @t table (w int, d date); declare @w int, @wp int = 0 set @temp = @d; while @temp @wp begin insert into @t values (@w, @temp) set @wp = @w end end select * from @t;
Ertan Asan op
DECLARE @Start_Dt DATE = '2020-01-07', @End_Dt DATE = GETDATE(), @SequencialWeek_No INT = 1, @OldWeek_No INT = 0, @Week_No INT = 0; DROP TABLE IF EXISTS #Temp; CREATE TABLE #Temp ( Date DATE, Week_No INT, SequencialWeek_No INT ); WHILE @Start_Dt <= @End_Dt BEGIN SET @OldWeek_No = @Week_No; SET @Week_No = DATEPART(wk, @Start_Dt); SET @SequencialWeek_No = CASE WHEN @Start_Dt = '2020-01-07' THEN 1 WHEN @OldWeek_No = @Week_No THEN @SequencialWeek_No ELSE @SequencialWeek_No + 1 END; INSERT INTO #Temp ( Date, Week_No, SequencialWeek_No ) SELECT @Start_Dt, @Week_No, @SequencialWeek_No; SET @Start_Dt = DATEADD(DAY, 1, @Start_Dt); END; SELECT * FROM #Temp ORDER BY Date;
Jay op