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 :

[SQLLite] requete SQL comment faire


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [SQLLite] requete SQL comment faire
    bonjour, j'ai une table qui a les champs suivants :
    id, id_PRODUIT, CAS, NCOMP, ORDRE

    par exemple un produit: id_produit=1, CAS=777, NCOMP=2, ordre=1
    id_produit=1, CAS=666, NCOMP=2, ordre=2

    un autre produit qui composé :
    id_produit=2, CAS=777, NCOMP=2, ordre=1
    id_produit=2, CAS=55, NCOMP=2, ordre=2
    AINSI DE SUITE,
    j'aimerais savoir par exemple si mon produit existe dans la table:
    l'utilisateur, fournit : la liste des CAS, NCOMP et ordre,
    comment ecrire la requette :

    select id_produit where CAS in ( '777','5') and NCOMP=2 and ordre IN (1,2)

    je veux avoir le id_produit

    merci pour votre aide

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut


    Merci de lire : CONSEILS... à lire AVANT de POSTER ! merci

    Sinon, je n'ai pas compris.

  3. #3
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select id_produit 
    FROM nomDeLaTable 
    where CAS in ( '777','5') 
    and NCOMP=2 
    and ordre IN (1,2)
    La syntaxe d'1 select ? C'est ça que tu veux ?

  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
    Points : 2 227
    Points
    2 227
    Par défaut
    Non, non
    Avec cette requête tu vas avoir les lignes
    CAS = '777' et ordre = 2
    CAS = '55' et ordre = 1

    Avec un moteur qui accepte le Row Value Constructor, comme ORACLE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (CAS, NComp, Ordre) IN (('777', 2, 1), ('55', 2, 2))

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    j'utilise SQlite,
    quand j'execute ta requette j'ai une ereur sql,
    peux tu ecrire la requette complete : est ce correcte !!

    select * from T_mixture WHERE
    (CAS, NCOMP, ORDRE) IN (('77-4-6',2,1), ('77-4-7',2, 2))




    Citation Envoyé par Médiat
    Non, non
    Avec cette requête tu vas avoir les lignes
    CAS = '777' et ordre = 2
    CAS = '55' et ordre = 1

    Avec un moteur qui accepte le Row Value Constructor, comme ORACLE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (CAS, NComp, Ordre) IN (('777', 2, 1), ('55', 2, 2))

  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
    Points : 2 227
    Points
    2 227
    Par défaut
    C'est peut-être parce que SQLite ne gère pas le RVC ?

  7. #7
    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
    Dans ce cas, il faut se résoudre à écrire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    WHERE ((CAS = '777' AND NComp = 2 AND Ordre = 1)
            OR 
           (CAS = '55' AND NComp =  2 AND Ordre = 2))

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    non
    ce qu'il faut c'est que les deux soit OK pour me retourner le id_Produit

    le "OR" n'est pas appriprié.


    Citation Envoyé par Xo
    Dans ce cas, il faut se résoudre à écrire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    WHERE ((CAS = '777' AND NComp = 2 AND Ordre = 1)
            OR 
           (CAS = '55' AND NComp =  2 AND Ordre = 2))

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    est ce que vous ne pensez pas qu'il faille faire une auto jointure (inner join)

    cette requette marche bien , mais le souci quand ncomp=10 ca va faire beaucoup d'auto jointure

    select t1.* from T_mixture t1
    inner Join T_mixture t2
    On t1.Id_Mixture=t2.Id_Mixture
    inner Join T_mixture t3 on t1.Id_Mixture=t3.Id_Mixture
    WHERE( (t1.CAS ='77-4-6' and t1.NCOMP=3 and t1.Ordre=1)
    and (t2.CAS='77-4-5' and t2.NCOMP=3 and t2.ordre =2)
    and (t3.CAS='77-4-7' and t3.NCOMP=3 and t3.ordre =3)
    )



    Citation Envoyé par babaahmed
    non
    ce qu'il faut c'est que les deux soit OK pour me retourner le id_Produit

    le "OR" n'est pas appriprié.

Discussions similaires

  1. Requete SQL : comment faire un cumul
    Par yannick069 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/04/2015, 13h21
  2. [struts requete sql] comment faire un wait
    Par chouchou93 dans le forum Struts 1
    Réponses: 1
    Dernier message: 15/05/2006, 19h04
  3. requete sql pour faire un classement
    Par beezee dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/03/2006, 13h03
  4. [SQL] Comment faire ma requête
    Par kaiserazo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/05/2005, 10h39
  5. [SQL] requetes inbriquées, comment faire celle ci??
    Par Devil666 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/05/2005, 15h44

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