J'ai quelques anciens modèles Excel que j'essaie de reproduire, la façon dont ils sont configurés n'est pas idéale mais je les utilise comme exercice.Récupérer et concaténer des semaines de dates historiques
Dans les tableaux Excel il y a une colonne qui ressemble à ceci:
|--Week and dates--|
|------------------|
|Week 291214_040115|
|Week 050115_110115|
|Week 120115_180115|
|...etc............|
|...etc............|
|...etc............|
|...etc............|
|Week 030717_090717|
|Week 100717_160717|
Avec le code ci-dessous j'ai essayé de recréer ce qui précède mais j'ai rencontré plusieurs problèmes.
Declare @sDate date,
@eDate date;
Select @sDate = '2015-01-01',
@eDate = '2017-07-31';
;with cte as
(
select @sDate StartDate,
DATEADD(wk, DATEDIFF(wk, 0, @sDate), 6) EndDate
union all
select dateadd(ww, 1, StartDate),
dateadd(ww, 1, EndDate)
from cte
where dateadd(ww, 1, StartDate)<= @eDate
)
select concat(StartDate,'_',EndDate) as date
from cte
OPTION (MAXRECURSION 0)
La sortie ce produit est:
|------------Dates-------------|
|2015-01-01_Jan 4 2015 12:00AM|
|2015-01-08_Jan 11 2015 12:00AM|
|2015-01-15_Jan 18 2015 12:00AM|
|2015-01-22_Jan 25 2015 12:00AM|
|2015-01-29_Feb 1 2015 12:00AM|
|2015-02-05_Feb 8 2015 12:00AM|
Je n'ai pas concaténer la chaîne « semaine » encore dans le script, mais fondamentalement comment j'obtenir le script à regarder de plus comme le modèle Excel table et moins comme ma propre version.