2015-03-09 2 views
1

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.

+1

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). –

Répondre

1

RÉALISÉ votre accès à l'aide

DatePart('q',[date]) 

DATEPART TRIMESTRE

SELECT date, DATEPART(QUARTER, date) as FinancialQuarter 
FROM DimDate 
+0

Salut Matt, quand je cours que je suis invité à entrer la valeur du paramètre pour le trimestre. Qu'est-ce que j'entrerais ici? Merci pour votre message. –

+0

mise à jour réponse pour l'accès – Matt

+0

Merci Matt, cette solution a travaillé un régal! Très appréciée –