J'ai de la difficulté à trouver un bon moyen d'obtenir du code SQL dans ma base de données d'accès pour créer un résultat Financial Quarter basé sur une date au format dd/mm/yyyy
(UK). J'ai une colonne appelée 'Date' dans la table 'DimDate' et j'ai une colonne appelée 'FinancialQuarter' dans la même table. Je veux essentiellement le SQL pour travailler sur les éléments suivants:Convertir la date en trimestre financier dans Access SQL
Si le mois est compris entre 1 et 3 est égal à Q1, Si le mois est compris entre 4 et 6 est égal à Q2, Si le mois est entre 7 et 9 égaux Q3, Si le mois se situe entre 10 et 12 équivaut à Q4,
J'ai quelques compétences de base en SQL, mais je ne suis pas un expert. J'ai trouvé un post dans StackOverflow similaire à cette question mais je n'ai fait aucun progrès. Le code SQL ils ont utilisé que je modifié était comme suit:
SELECT
Date,
CASE
WHEN MONTH(Date) BETWEEN 1 AND 3 THEN convert(char(4), YEAR(Date) - 1) + 'Q1'
WHEN MONTH(Date) BETWEEN 4 AND 6 THEN convert(char(4), YEAR(Date) - 1) + 'Q2'
WHEN MONTH(Date) BETWEEN 7 AND 9 THEN convert(char(4), YEAR(Date) - 0) + 'Q3'
WHEN MONTH(Date) BETWEEN 10 AND 12 THEN convert(char(4), YEAR(Date) - 0) + 'Q4'
END AS FinancialQuarter
FROM
DimDate
Mon code ne fonctionne pas du tout, et il est probablement complètement faux, toute aide serait très appréciée!
Merci James.
Access SQL ne prend pas en charge la 'CASE WHEN' construction. Le mécanisme correspondant dans Access SQL est la fonction [Switch()] (https://support.office.com/en-us/article/Switch-Function-d750c10d-0c8e-444c-9e63-f47504f9e379). –