Nous utilisons 4-4-5 périodes comptables. Si vous n'êtes pas familier avec cela, vous pouvez trouver des informations au Wikipedia. Pour ce faire, j'ai créé une table avec tous les jours pour les 10 prochaines années. J'ai utilisé le script (quoique modifié) trouvé here.4-4-5 Les périodes comptables sont le fléau de mon existence
Le script de création de ma table est:
USE [RedFridayDates];
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE TABLE [tblRedFridayAllDates] (
[DATE_ID] int NOT NULL,
[DATE] datetime NOT NULL,
[YEAR] smallint NOT NULL,
[MONTH] tinyint NOT NULL,
[DAY_OF_WEEK] tinyint NOT NULL,
[REDFRIDAY] bit NULL,
[Period] tinyint NULL,
[ForecastSales] money NULL)
ON [PRIMARY];
GO
La période est mon 4-4-5 "mois".
Je lien généralement mes questions à lui avec le modèle suivant j'ai créé:
SELECT RED.[YEAR] as [Year],
RED.PERIOD as [RF Period],
FROM TableName
INNER JOIN REDFRIDAYDATES..TBLREDFRIDAYALLDATES RED
ON RED.date =
CAST (FLOOR (CAST (TableName.Date AS FLOAT)) AS DATETIME)
La plupart de mon utilisation de la base de données est SQL 2000 si mes dates sont tous les champs datetime.
Existe-t-il un moyen plus efficace d'accomplir ceci? Est-ce le meilleur modèle de requête que je pourrais utiliser? Qu'en est-il d'autres façons de convertir l'heure de la date en date? Y a-t-il des moyens plus rapides de le faire?