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 :

aide sur Requete SQL


Sujet :

Développement SQL Server

  1. #1
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut aide sur Requete SQL
    bonjour,

    J'ai un souci avec une requete SQL, je fais appel 2 fois à l'attribut date de ma dimension 'Temps'.
    Ma requete comme elle est faite dans mon résultat,je n'ai que des 'nulls'.
    ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT     dbo.dimCommande.NUMERO, dbo.dimCommande.LIBELLE AS LIB_COM, dbo.dimAnalytique.LIBELLE AS LIB_ANA, dbo.dimCompte.COMPTE, 
                  dbo.dimEngagement.NUMERO AS NUM_ENGA, dbo.dimEngagement.LIBELLE AS LIB_ENGA, dbo.dimFacture.NUMERO AS NUM_FAC, 
                  dbo.dimFacture.LIBELLE AS LIB_FAC, dbo.dimMandat.NUMERO AS NUM_MAN, dbo.dimMandat.LIBELLE AS LIB_MAN, 
                  dbo.dimMarche.NUMERO AS NUM_MAR, dbo.dimMarche.LIBELLE AS LIB_MAR, dbo.dimTiers.NOM_TIERS, dbo.dimTemps.DATE AS DATE_MAN, 
                  dbo.dimTemps.DATE AS DATE_COM
    FROM         dbo.FactSuiviMarche left outer join
                    dbo.dimAnalytique ON dbo.FactSuiviMarche.ID_DIM_ANALYTIQUE = dbo.dimAnalytique.ID_DIM_ANALYTIQUE left outer join
    				dbo.dimcommande ON dbo.FactSuiviMarche.ID_DIM_COMMANDE = dbo.dimcommande.ID_DIM_COMMANDE left outer join
    				dbo.dimmandat ON dbo.FactSuiviMarche.ID_dim_mandat = dbo.dimmandat.ID_dim_mandat left outer join
    				dbo.dimfacture ON dbo.FactSuiviMarche.ID_DIM_facture = dbo.dimfacture.ID_DIM_facture left outer join
    				dbo.dimengagement ON dbo.FactSuiviMarche.ID_DIM_engagement = dbo.dimengagement.ID_DIM_engagement left outer join
    				dbo.dimmarche ON dbo.FactSuiviMarche.ID_DIM_marche = dbo.dimmarche.ID_DIM_marche left outer join
    				dbo.dimcompte ON dbo.FactSuiviMarche.ID_DIM_compte = dbo.dimcompte.ID_DIM_compte left outer join
    				dbo.dimtiers ON dbo.FactSuiviMarche.ID_DIM_tiers = dbo.dimtiers.ID_DIM_tiers left outer join
    
    				dbo.dimtemps ON (dbo.FactSuiviMarche.ID_DIM_TPS_MAN = dbo.dimtemps.ID_DIM_temps and dbo.FactSuiviMarche.ID_DIM_TPS_VAL = dbo.dimtemps.ID_DIM_temps)
    qqn peut me dire la notation à adopter pour obtenir un résultat dans mes 2 colonnes de date.
    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Afin de pouvoir résoudre ton problème, je te conseille de créer tes jointures progressivement. En effet, tu utilises des jointures gauche externes qui ont tendances à renseigner des colonnes à NULL. Il faut donc faire très attention à l'utilisation de ce type de jointures.

    Une construction progressive te permettra de visualiser les jeux de résultats renvoyés et mieux comprendre d'où peut provenir ton problème.
    Bon courage pour la suite.

  3. #3
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    c'est ce que j'ai fait...
    comme tu peux le voir c'est sur la derniere jointure que je seche.
    Sinon ma table est correctement remplie, seul ce qui concerne les dates me renvoie des 'nulls'.
    Si je change ma requete pour que ca me renvoie qu'un champ date, ca fonctionne, je bloque qd j'ai mes 2 champs dates.
    Je cherche une notation pour avoir 2 jointures sur une meme table.

  4. #4
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    j'ai trouvé!!

    donc faut faire comme il suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT     dbo.dimCommande.NUMERO, dbo.dimCommande.LIBELLE AS LIB_COM, dbo.dimAnalytique.LIBELLE AS LIB_ANA, dbo.dimCompte.COMPTE, 
                  dbo.dimEngagement.NUMERO AS NUM_ENGA, dbo.dimEngagement.LIBELLE AS LIB_ENGA, dbo.dimFacture.NUMERO AS NUM_FAC, 
                  dbo.dimFacture.LIBELLE AS LIB_FAC, convert(varchar,dbo.dimMandat.NUMERO) AS NUM_MAN, dbo.dimMandat.LIBELLE AS LIB_MAN, 
                  dbo.dimMarche.NUMERO AS NUM_MAR, dbo.dimMarche.LIBELLE AS LIB_MAR, dbo.dimTiers.NOM_TIERS as TIERS, a.DATE AS DATE_MAN, 
                  dbo.dimTemps.DATE AS DATE_COM
    FROM         dbo.FactSuiviMarche left outer join
                    dbo.dimAnalytique ON dbo.FactSuiviMarche.ID_DIM_ANALYTIQUE = dbo.dimAnalytique.ID_DIM_ANALYTIQUE left outer join
    				dbo.dimcommande ON dbo.FactSuiviMarche.ID_DIM_COMMANDE = dbo.dimcommande.ID_DIM_COMMANDE left outer join
    				dbo.dimmandat ON dbo.FactSuiviMarche.ID_dim_mandat = dbo.dimmandat.ID_dim_mandat left outer join
    				dbo.dimfacture ON dbo.FactSuiviMarche.ID_DIM_facture = dbo.dimfacture.ID_DIM_facture left outer join
    				dbo.dimengagement ON dbo.FactSuiviMarche.ID_DIM_engagement = dbo.dimengagement.ID_DIM_engagement left outer join
    				dbo.dimmarche ON dbo.FactSuiviMarche.ID_DIM_marche = dbo.dimmarche.ID_DIM_marche left outer join
    				dbo.dimcompte ON dbo.FactSuiviMarche.ID_DIM_compte = dbo.dimcompte.ID_DIM_compte left outer join
    				dbo.dimtiers ON dbo.FactSuiviMarche.ID_DIM_tiers = dbo.dimtiers.ID_DIM_tiers left outer join
    				dbo.dimtemps a ON dbo.FactSuiviMarche.ID_DIM_TPS_MAN = a.ID_DIM_temps left outer join 
    				dbo.dimtemps  ON dbo.FactSuiviMarche.ID_DIM_TPS_VAL = dbo.dimtemps.ID_DIM_temps
    voilà...

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

Discussions similaires

  1. Aide sur requete SQL
    Par calou_33 dans le forum SQL
    Réponses: 3
    Dernier message: 04/10/2008, 16h37
  2. Réponses: 7
    Dernier message: 18/07/2008, 09h44
  3. AIDE SUR REQUETE SQL AVEC FONCTION LIKE
    Par everblue dans le forum Langage SQL
    Réponses: 0
    Dernier message: 16/03/2008, 18h56
  4. aide sur Requete SQL
    Par geof dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/03/2008, 14h56
  5. Aide sur requete SQL
    Par rippoz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/07/2007, 11h46

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