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

MS SQL Server Discussion :

Comment récuperer valeurs dans les 3 mois précédents 1 date donnée ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut Comment récuperer valeurs dans les 3 mois précédents 1 date donnée ?
    Bonjour,
    je dois faire une requête sur 2 tables.
    T_ExtraitDISoldees :
    - DI
    - Ns_PFin
    - DateSolde (au format dd/mm/yyyy)

    et
    infoDI :
    - DI
    - NS_NewPFin
    - Date_SoldeSAP(au format dd/mm/yyyy)

    Dans la table T_ExtraitDISoldees, toutes les DateSolde sont dans le même mois. (La table est vidée et remplie à nouveau tous les mois)

    Le but de ma requête est de récuperer les DI, Ns_PFin de la table T_ExtraitDISoldees + tous les DI, Ns_NewPFin de la table infoDI dont :
    - Ns_PFin = Ns_NewPFin
    - et il faut que la date Date_SoldeSAP de InfoDI soit compris dans les 3 mois précédents le mois de la date DateSolde de la table T_ExtraitDISoldees.

    En gros si les num.serie sont les mêmes, et que la date DateSolde est 12/02/2009, il faut que le mois de la date Date_SoldeSAP soit compris dans les mois 01/2009 ou 12/2008 ou 11/2008

    J'ai fais la requete suivante, mais elle ne gère pas les années :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select Ext.DI as DI1, Ext.Ns_PFin as NS1, Inf.DI as DI2, Inf.NS_NewPFin as NS2 from T_ExtraitDISoldees Ext
    INNER JOIN data_rgw.dbo.infoDI Inf On Ext.Ns_PFin = Inf.NS_NewPFin
    WHERE MONTH(Inf.Date_SoldeSAP) between (MONTH(Ext.DateSolde)-1) AND between (MONTH(Ext.DateSolde)-3)
    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT Ext.DI AS DI1,
    		Ext.Ns_PFin AS NS1,
    		Inf.DI AS DI2,
    		Inf.NS_NewPFin AS NS2
    FROM dbo.T_ExtraitDISoldees Ext
    JOIN data_rgw.dbo.infoDI Inf ON Ext.Ns_PFin = Inf.NS_NewPFin
    WHERE Inf.Date_SoldeSAP) >= DATEADD(month, -3, Ext.DateSolde)
    @++

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Un doublon de ce sujet

  4. #4
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut
    Merci Elsuket
    (et désolé pour le post en double Je sais pas trop comment j'ai fait mon compte : )

    Par contre, pour la requête, il me met ce message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Impossible de résoudre le conflit de classement entre "SQL_Latin1_General_CP1_CI_AS" et "French_CI_AS" dans l'opération equal to.
    alors que DateSolde et Date_SoldeSAP sont bien en datetime tous les 2 ???

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Visiblement non.... Voyez quels sont les types de données de vos tables à l'aide de la vue : INFORMMATION_SCHEMA.COLUMNS

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut
    En fait, c'était pas sur la date mais sur la jointure.
    Ns_PFin est en nvarchar(15) et Ns_NewPFin en varchar(15) .
    Est-ce que tu peux m'aider SQLPro à régler ce "problème" stp ?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/09/2011, 14h29
  2. Réponses: 3
    Dernier message: 02/04/2009, 12h47
  3. Réponses: 1
    Dernier message: 12/02/2009, 16h51
  4. Réponses: 21
    Dernier message: 18/11/2008, 14h36
  5. [TDBChart]Comment mettre les valeurs DANS les barres
    Par SubZero2 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/09/2008, 08h43

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