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 :

Requête complexe ?


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Par défaut Requête complexe ?
    Bonjour à tous,

    voici mon soucis

    je dispose d'un certain nombre de table :

    je ne peux re-écrire l'ensemble des tables bien trop grande pour effectuer ma requête cependant je pense savoir quel sont les champs à utiliser.

    Table orders : id_order, date_purchased, orders_id_transporteur
    Table transport : id, colissimo, chrono, standard, express, gb, gbd, pt_retrait...

    Ma requête doit me retourner quelque chose comme ça (une ligne par commande)

    Date | n° commande | Transporteur (ex colissimo) | prix

    Exemple

    Janvier | WW138484AX | colissimo | 7
    Janvier | AA3449595II | chrono | 14

    etc...

    Edit : Je viens d'avoir des infos supplémentaires et qui n'ont rien avoir par rapport à ma première question... donc j'ai modifié en conséquence

    je séléctionne ici l'ensemble des commandes pour le mois de janvier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT o.`date_purchased`, o.`orders_id`, o.`orders_id_transporteur`, t.`id` 
    FROM orders o, transport t
    WHERE o.orders_id_transporteur = t.id
    AND o.`date_purchased` LIKE '2008-01%'
    j'ai donc :

    Date | n°commande |

    je fais une jointure avec la table transport maintenant j'aimerai savoir comment faire pour
    que l'order_id_transport me donne l'équivalence des champs (colissimo, chrono etc...)
    Ma table transport étant sous forme de matrice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    id colissimo chrono standard express gb etc...
    0      11,9        14         -1         -1        -1
    1      4,9          9,9
    2
    3
    4
    5
    etc
    J'espère être clair, merci de vos réponses

    Nick

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 818
    Billets dans le blog
    14
    Par défaut
    Je ne comprends pas à quoi correspond la table transport.
    Pourquoi y a t-il une colonne par type de transport au lieu d'une colonne type_transport ?
    A quoi correspondent les nombres dans ces colonnes ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Par défaut
    Merci de ta réponse

    Après recherche il n'y a pas besoin d'utiliser cette table transport.

    chaque transporteur dispose d'un code EAN ! ce qui simplifie la chose

    je viens de me remettre dessus

    si je bloque je rebip

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Par défaut
    J'en reviens à ma requête

    toujours dans le but d'avoir un résultat de ce genre :

    Exemple

    Janvier | WW138484AX | colissimo | 7
    Janvier | AA3449595II | chrono | 14

    j'utilise maintenant une autre table que celle transport.

    La table orders avec: orders_id, date_purchased
    La table products avec : products_id, products_ean

    je dispose des codes ean des transporteurs qui sont en fait des produits avec un code ean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT o.`date_purchased`, o.`orders_id`, p.`products_id`, p.`products_ean`, p.`products_price`  
    FROM orders o, products p
    WHERE o.orders_id = p.products_id
    AND p.products_ean = 4242000013253
    Je vois pas trop comment sélectionner l'ensemble des codes ean des transporteurs afin d'en sortir comme le résultat voulu

    Date | N°commande | transporteur | prix

    le but étant de sortir une ligne par commande comme l'exemple ci-dessus

    Merci

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 818
    Billets dans le blog
    14
    Par défaut
    N'y a t-il pas un product_type ou un truc dans le genre qui permettrait de savoir quels ean sont ceux des transporteurs ? Ou un formatage de cet ean qui dirait par exemple que tous les ean des transporteurs sont de la forme 4242% ?

    Au passage, les jointures normalisées, c'est mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT o.`date_purchased`, o.`orders_id`, p.`products_id`, p.`products_ean`, p.`products_price`  
    FROM orders o
    INNER JOIN products p ON o.orders_id = p.products_id
    WHERE p.products_ean = 4242000013253
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Par défaut
    Oui pour les jointures normalisées

    J'ai bien un products_model qui va me donner le nom du code EAN (genre colissimo, ou chrono) mais c'est trop vaste (du fait des noms donnés)

    en cherchant la j'ai un products_family et après vérif ça correspond à DIVE pour l'ensemble des transporteurs

    Pour la structures ean effectivement l'ensemble commence par 4242 mais après vérif en fait l'ensemble des produits commencent par 4242

    ayant été définit ainsi chaque transporteur correspond à un produit.

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

Discussions similaires

  1. [SQL] Requête complexe avec appel multiple à la même table
    Par Julien Dufour dans le forum Langage SQL
    Réponses: 9
    Dernier message: 14/04/2005, 14h12
  2. Requête complexe
    Par Yali dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2005, 09h19
  3. 3 tables avec requête complexe
    Par yamino dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/03/2004, 19h50
  4. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  5. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50

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