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

Langage SQL Discussion :

Ma requête filtre trop


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 89
    Points
    89
    Par défaut Ma requête filtre trop
    Bonjour tout le monde !!

    Voilà, ci-dessous ma requête faisant un select de plusieurs tables et insérant le contenu dans une autre table.

    Les 2 tables qui nous intéresses ici sont TransacDWH et SalesDWH, en effet une vente (sales) est composé de plusieurs Transactions. La colonne RetailerID correspond au numéro du vendeur.

    Mon problème est que dans ma table finale je n'ai pas le RetailerID N° 945 alors qu'il est bien présent dans les deux tables cité plus haut...

    D'une, je ne sais pas si vous allez pouvoir m'aider car vous n'avez pas la structure de toute mes tables
    et de deux parce que c'est une requette assez long à analyser, mais je galère tellement que je tente ma chance

    Un tout cas un grand merci à ceux qui pourront contribuer et bonne fin de journée !!

    Code de ma requête :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    drop table olap01;
    SELECT  
    tra.idTransaction
    		, tra.ArticleQty
    		, tra.NetAmount
    		, sto.idStore
    		, sto.Country
    		, sto.Region
    		, sto.City
    		, sto.CompanyName
    		, sto.StoreName
    		, sto.StoreGroup
    		, sto.StoreType
    		, sto.LocationType
            , sto.PostCode
            , sto.RetailerID
            , sto.RetailerStore
    		, tab.idDate
    		, tab.ComputerDate
    		, tab.SqlDate
    		, tab.Annee
    		, tab.Mois
    		, tab.AnneeMois
    		, tab.Jour
    		, tab.Quarter
    		, tab.YearQuarter
    		, tab.Semaine
    		, tab.AnneeSemaine
    		, case tab.DayWeek
    		 	WHEN 'Mon' THEN 'Lundi'
    		 	WHEN 'Tue' THEN 'Mardi'
    		 	WHEN 'Wed' THEN 'Mercredi'
    		 	WHEN 'Thu' THEN 'Jeudi'
    		 	WHEN 'Fri' THEN 'Vendredi'
    		 	WHEN 'Sat' THEN 'Samedi'
    		 	WHEN 'Sun' THEN 'Dimanche'
    		 END as DayWeek         
             , tab.Worked
             , sal.Qty
             , sal.NetAmount AS salesnetamount
             , sal.BrutAmount AS salesbrutamount
             , art.idArticle, art.Ref
             , art.Description
             , art.idBrand
             , art.Brand
             , art.idFamily
             , art.Family
             , art.Parkod
             , lin.idLine
             , lin.Line
             , axe.IDAxe
             , axe.AxeName
             , axe.ShortName
             , fami.idFamille
             , fami.libFamille
             , sof.idSousFamille
             , sof.libSousFamille
             , cate.idCategory
             , cate.Category
             , art.CreationDate
             , datediff(Month
    			, SUBSTRING(CAST(art.CreationDate AS char ) ,7 ,2) + '/' + SUBSTRING(CAST(art.CreationDate AS char ) ,5 ,2) + '/' + SUBSTRING(CAST(art.CreationDate AS char ) ,1 ,4)
    			, SUBSTRING(CAST(sal.idDate AS char ) ,7 ,2) + '/' + SUBSTRING(CAST(sal.idDate AS char ) ,5 ,2) + '/' + SUBSTRING(CAST(sal.idDate AS char ) ,1 ,4)
    	 		)
    			as ageEnMois
             , dep.nomDep
    INTO OLAP01
    FROM     salesdwh sal
             INNER JOIN tabledate tab ON sal.idDate=tab.idDate
             INNER JOIN store sto ON sal.idStore=sto.idStore
             INNER JOIN art art ON sal.idArticle=art.idArticle
             INNER JOIN line lin ON art.idLine=lin.idLine 
             INNER JOIN axe axe ON lin.idAxe=axe.IDAxe
             INNER JOIN transacdwh tra ON sal.IdTransaction=tra.idTransaction
             INNER JOIN category cate ON art.idCategory=cate.idCategory
             INNER JOIN categoriesousfamille csf ON cate.idCategory=csf.idCategory 
             INNER JOIN sousfamilles sof ON sof.idSousFamille=csf.idSousFamille
    		 INNER JOIN familles fami ON fami.idFamille=sof.idFamille
             INNER JOIN departement dep ON dep.numDep = left(sto.PostCode, 2)
    ;

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Tu utilises des jointures internes (INNER JOIN), donc il suffit qu'une seule condition de jointure ne soit pas vérifiée pour que ta requête ne te sorte pas ta ligne avec ton RetailerID N° 945

    Il faut donc partir de ta table contanant ton RetailerID N° 945, et contruitre ta requête, table par table, jointure pas jointure, en vérifiant à chaque étape si elle te renvoie bien la ou les lignes attendues. Quand ce ne sera plus le cas, alors tu sauras dans qquelle table il te "manque" des enregistrement.

  3. #3
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 89
    Points
    89
    Par défaut
    ha yaie yaie... J'aime pas ta réponse Xo la flemme de faire tout ça, mais bon, si y'a pas le choix, y'a pas le choix...

    Merci en tout cas !

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

Discussions similaires

  1. "Requête filtre avancé" sur formulaire
    Par Thoomas dans le forum IHM
    Réponses: 1
    Dernier message: 24/11/2006, 17h21
  2. Filtre trop long pour un état
    Par Miss Ti dans le forum Access
    Réponses: 3
    Dernier message: 08/08/2006, 18h54
  3. [SQL] Requête SQL trop compliquée pour lui.
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 23/05/2006, 23h52
  4. erreur requète SQL : trop peu de paramètres
    Par pierre.egaud dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 21/04/2006, 15h57
  5. Requête filtre sur des rendez vous
    Par jdotti dans le forum Outils
    Réponses: 5
    Dernier message: 17/03/2006, 16h41

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