November 16, 2023 at 10:22 pm
I have a query that returns how many weeks between 2 dates and would like to insert a record for every week.
Equipment-Car
Start Week-34
Returned value=4
Expected insert
Equipment Week
Car 35
Car 36
Car 37
Car 38
November 17, 2023 at 4:23 am
From your query results you could CROSS APPLY a row generator created by using the row cardinality from sys.all_columns (which in my test instance is 11,745 rows) and TOP. The (guessed) INSERT line is commented out
with query_cte as (
select 'car' as equipment, 34 as start_wk, 4 as returned_val
union all
select 'bike', 20, 3
union all
select 'truck', 10, 2)
--insert into equipment_weeks(equipment, wk)
select q.equipment, q.start_wk + t.n
from query_cte q
cross apply (select top (q.returned_val) row_number() over (order by (select null)) as n
from sys.all_columns) t;
select count(*)
from sys.all_columns;
/* current instance: 11745 */
Aus dem Paradies, das Cantor uns geschaffen, soll uns niemand vertreiben können
Viewing 2 posts - 1 through 1 (of 1 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy