Bonjour,
Je souhaite faire démarrer ma requête au premier du mois en cours puis au premier du mois précédent!
Comment faire?
Merci
Bonjour,
Je souhaite faire démarrer ma requête au premier du mois en cours puis au premier du mois précédent!
Comment faire?
Merci
1) Quel est votre SGBD ?
2) Quelle est la requête ?
3) Qu'entendez-vous par "faire démarrer" ?
Bref, lisez les règles du forum ainsi que la phrase en bleu de ma signature et refaites votre demande plus clairement pour qu'on puisse vous aider efficacement.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
1) SQL server 2008
2)3) comme vous pouvez le voir, le critère de sélection est entre le premier du mois précédent et le premier du mois actuel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Select Sum(Quantité) from Table where case month(getdate()) when 1 then Table.date between (year(getdate())-1)+'-12-01 05:30:00.000' and year(getdate())+'01-01 05:30:00.000' when 2 then Table.date between year(getdate())+'01-01 05:30:00.000' and year(getdate())+'02-01 05:30;00.000' when 3 then Table.date between year(getdate())+'02-01 05:30:00.000' and year(getdate())+'03-01 05:30;00.000' ...
J'ai fait un essai avec de la concaténation mais il n'accepte pas le mélange année en entier et la suite en caractère.
Je pense donc qu'il faut "CASTer" la partie entière en caractères.
Je ne suis pas spécialiste de SQL Server mais ça pourrait donner, en plus simple et plus normalisé au niveau SQL, un truc de ce genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT SUM(Quantite) FROM la_table WHERE CASE MONTH(CURRENT_DATE) WHEN 1 THEN colonne_date BETWEEN CAST(YEAR(CURRENT_DATE) - 1 AS CHAR) + '-12-01 05:30:00.000' AND CAST(YEAR(CURRENT_DATE) AS CHAR) + '01-01 05:30:00.000' ELSE colonne_date BETWEEN CAST(YEAR(CURRENT_DATE) AS CHAR) + CAST(MONTH(CURRENT_DATE) - 1 AS CHAR) + '-01 05:30:00.000' AND CAST(YEAR(CURRENT_DATE) AS CHAR) + CAST(MONTH(CURRENT_DATE) AS CHAR) + '-01 05:30:00.000'
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager