IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Requête SQL au premier du mois


Sujet :

Développement SQL Server

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 205
    Points : 89
    Points
    89
    Par défaut Requête SQL au premier du mois
    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

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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 !

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 205
    Points : 89
    Points
    89
    Par défaut
    1) SQL server 2008

    2)
    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'
                      ...
    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.

    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.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Requête Sql pour avoir les mois coulant
    Par nitro97130 dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 03/12/2012, 05h06
  2. requête sql pour recherche par mois
    Par mahboubi dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/01/2009, 09h05
  3. Requête SQL trop compliquée pour moi
    Par goldenboy68 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 10/04/2008, 14h50
  4. problème pour récupérer le mois et l'année dans ma requête SQL
    Par rob2-9 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 10/08/2006, 14h45
  5. [MySQL] Requête SQL qui zappe la premiere ligne
    Par mulbek dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/01/2006, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo