Afficher les données 2 derniers mois transact sql

Résolu
pulls Messages postés 160 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je voudrais afficher les données du mois en cours et du mois passé, avec transact SQL. J'ai procédé ainsi:


SELECT *
FROM matable
WHERE month(madate) >= (month(getdate()))


Les données s'affichent bien entre février et décembre; mais à partir de janvier , les données de décembre de l'année antérieure ne s'affichent pas. Je tourne en rond depuis près d'une heure pour corriger ces codes en vain. Je vous prie de m'aider à régler ce problème.

cordialement.

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonsoir,
    si tu souhaites comprendre, je te suggère de faire ceci:
    SELECT year(madate), month(madate), year(getdate()), month(getdate()) 
    FROM matable

    ensuite, peut-être essayer ainsi:
    WHERE 12*year(madate) + month(madate) >= 12*year(getdate()) + month(getdate())
    0
  2. pulls Messages postés 160 Statut Membre 3
     
    Merci,
    j'ai plutôt écrit :

    SELECT *
    FROM matable
    WHERE madate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0) -- premier_jour_du_mois_precedent


    Cordialement
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      si cela fonctionne, peux-tu marquer le sujet comme résolu, via la roue dentée à droite du titre?
      0