J'ai la requête suivante qui s'exécute dans SQL Server 2014 pour remplir une table appelée DateDimension.Comment remplir ma table de dimension de date dans SQL Server afin d'obtenir une colonne avec cette valeur spécifique?
DECLARE @startdate datetime
DECLARE @enddate datetime
SET @startdate = '01/01/2000'
SET @enddate = '12/31/2018'
DECLARE @loopdate datetime
SET @loopdate = @startdate
WHILE @loopdate <= @enddate
BEGIN
INSERT INTO DateDimension VALUES (
Day(@loopdate),
Month(@loopdate),
Year(@loopdate),
CASE WHEN Month(@loopdate) IN (1, 2, 3) THEN 3 -- Since Financial Year starts in July, January to March is considered as Quarter 3
WHEN Month(@loopdate) IN (4, 5, 6) THEN 4
WHEN Month(@loopdate) IN (7, 8, 9) THEN 1
WHEN Month(@loopdate) IN (10, 11, 12) THEN 2
END,
@loopdate,
CONVERT(VARCHAR(10),@loopdate,111)
)
SET @loopdate = DateAdd(d, 1, @loopdate)
END
Extrait du tableau en cours, après l'exécution de la requête ci-dessus est la suivante:
id Day Month Year quarter date datevarchar
1 1 1 2000 3 2000-01-01 1/1/2000
2 2 1 2000 3 2000-01-02 1/2/2000
3 3 1 2000 3 2000-01-03 1/3/2000
4 4 1 2000 3 2000-01-04 1/4/2000
5 5 1 2000 3 2000-01-05 1/5/2000
J'ai besoin du « quart » colonne pour afficher ses valeurs comme ci-dessous:
quarter
Qr 3 2000
Il serait encore plus agréable si la colonne «quart» était laissée telle quelle et une nouvelle colonne ajoutée pour montrer ce que je recherchais. Comment puis-je faire ceci?
En concaténant avec 'Qr' et l'année. Très basique. –
Que demandez-vous exactement? Avez-vous un problème * spécifique *? Vous avez déjà un script qui génère des valeurs. Tout ce que vous devez faire est d'ajouter une autre colonne à la table et l'expression appropriée dans votre script. –