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 :

requete sql mutlis tables


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
    Août 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Par défaut requete sql mutlis tables
    salut voilà c peut etre long et compliqué mais je voudrais faire uenrequète qui me sorte plusieurs colonnes

    J'ai une table
    Produit(Id_ref, libelle_P,Prix),
    imprimante(id_imprimante,libelle_I,id_marque,id_modèle),
    marque(id_marque,nom)
    modèle(id_modèle, nom_modele)
    produit_imprimante(id_ref,id_imprimante).

    Donc comme vous voyez elles sont liées.

    Je voudrais ressortir une requète ou table avec
    -- ID_ref
    -- Libélle du produit
    -- Imprimantes qui lui sont attachées (donc avec la relation marque et modèle)
    -- Prix

    j'ai fait une requète que voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select produit.ID_ref, produit.libelle_P, imprimante_libelle_I, marque.nom, modele.nom_modele, produit_imprimante.id_imprimante
    from produit, imprimante, marque, modèle, produit_imprimante
    where produit.id-ref = produit_imprimante.id_imprimante and imprimante.id_marque = marque.id_marque and modele.id_modele = modele.nom_modele
    j'ai une erreur de syntaxe lors de la conversion de la valeur nvarchar '...' vers une colonne type de données smallint

    Au début j'arrivais à truc mais ej n'avais qu'une colonne.

    voilà si qqun à compris!

    merci

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Tu dois avoir des problème de typage.
    Donc en vérifiant je vois que tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    modele.id_modele = modele.nom_modele
    c'est de là que vient le problème.

    Ta jointure devrait sans doute être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        Produit.Id_ref = produit_imprimante.id_ref
    and imprimante.id_imprimante = produit_imprimante.id_imprimante
    and imprimante.id_marque = marque.id_marque
    and imprimante.id_modèle = modèle.id_modèle

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Par défaut
    effectivement. là j'étais bète!

    Le souci c'est que j'ai toujours comme avant une seule colonne qui est ID_ref et en plus les lignes sont en redondance. plus de 15 fois la même ligne

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Attention tu as définis 3 conditions de jointure, moi 4.
    Si tu veux aller un peu plus loin, il faudarit que tu donnes un exemple de contenu des tables, et ce que tu attends

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Par défaut
    ID_ref || Libelle || Imprimante || Prix

    Mais attention dans la colonne imprimantes il devrait y en avoir plusieurs. une reférence ID-ref va avoir un libéllé et plusieurs impriamntes qui lui sont appropriés avec leur marque et modèle.

    Exemple


    ID_ref:CAC001
    libellé: cartouche origine Canon
    Imprimante: 2000, 2100, 2200 etc
    Marque: Canon
    modèle: BJC
    Prix:8€

    Ce qui donnerait
    ID-ref || Libelle || Impriamnte ||
    CAC001 ||Cartouche origine canon ||Canon BJC2000, Canon BJC2100,..||

    c expliqué correctement?

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Tu vas plutôt obtenir :

    CAC001 || Cartouche origine canon || CANNON || BJC || 2000
    CAC001 || Cartouche origine canon || CANNON || BJC || 2100
    CAC001 || Cartouche origine canon || CANNON || BJC || 2200

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Par défaut
    ok.

    c plutot chiant.
    car je dois ressortir un fichier texte.

    Bon supposons que je veuille cela. Pourquoi en résultat de requète je n'ai qu'une seule colonne.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Par défaut
    si j'ai n imprimante.
    est ce que je peux alors sortir de cela une table avec n colonnes imprimantes
    Id_ref || imprimante 1|| imprimante 2| etc

  9. #9
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Par défaut
    désolé mais je ne vois pas une idée de solution.

    merci

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Par défaut
    donc si qqun pouvait me dire juste pourquoi ma requète en me donne qu'une colonne.

    merci.

  12. #12
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Peux-tu faire un copié-collé de ta requête, et du résultat correspondant à l'exemple que tu as donné plus tôt.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Par défaut
    j'ai réussi avec ma requète. ca marche.
    J'aimerais avoir un avis a partir d'une requète avec plusieurs colonne. est il possible de faire une table qui regroupe dans une colonne plusieurs de ces colonnes?

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

Discussions similaires

  1. Requete SQL multi tables
    Par csilas dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 28/01/2010, 15h05
  2. requete sql sur tables paradox
    Par quedudev dans le forum Bases de données
    Réponses: 1
    Dernier message: 18/02/2009, 17h42
  3. requete SQL 3 tables
    Par basson dans le forum Développement
    Réponses: 2
    Dernier message: 05/06/2008, 09h58
  4. Requete SQL : 2 tables + count
    Par vichenze dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/08/2007, 10h28
  5. Requete SQL sur table dbase et date du jour
    Par Jean-François PETIT dans le forum Bases de données
    Réponses: 5
    Dernier message: 29/03/2005, 09h31

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