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 :

recherche avec like ou containing dans une table détail


Sujet :

Langage SQL

  1. #1
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut recherche avec like ou containing dans une table détail
    bonjour

    SGBD : firebird 1.5

    pour simplifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    table factures
    id_facture integer,
    fact_date date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    table details_factures
    id_detail_facture integer,
    DF_ID_FACTURE integer,
    DF_PRODUIT varchar(150) ,
    DF_QTE integer
    ce que je cherche a faire
    c'est de retrouver toutes les factures qui incluent un produit commençant par un 'A' par exemple ou bien
    toutes les factures qui contiennent un produit commençant par 'clavier'

    je peux retrouver les occurences exactes avec cette requette mais pas
    les occurences partielles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select  * from factures fact
     
     
     
     
     
     
     
    WHERE 'CLAVIER' in ( select  DF_PRODUIT from details_factures DF
    where DF.DF_ID_FACTURE = FACT.ID_FACTURE)
    merci pour votre aide

  2. #2
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Salut,
    il me semble que tu peux faire plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT F.id_facture
    FROM Factures F, Detail_factures DF
    WHERE F.id_facture = DF.DF_id_facture
    AND DF.DF_Produit LIKE 'A%' OR  DF.DF_Produit LIKE 'clavier%'
    Ici le % représente n'importe quelle chaine de caractères.

    A+

  3. #3
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    1) Lola, attention au parenthèsage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT F.id_facture
    FROM Factures F, Detail_factures DF
    WHERE F.id_facture = DF.DF_id_facture
    AND (DF.DF_Produit LIKE 'A%' OR  DF.DF_Produit LIKE 'clavier%')
    Sinon, ça risque de faire des surprises désagréables...

    2) On va avoir des doublons. Tu peux soit ajouter un DISTINCT, soit SELECTionner moins de trucs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT F.id_facture
    FROM Factures F
    WHERE EXISTS (SELECT 1
                          FROM Detail_factures DF
                          WHERE F.id_facture = DF.id_facture
                          AND (DF.DF_Produit LIKE 'A%' OR  DF.DF_Produit LIKE 'clavier%')

  4. #4
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    C'est vrai, tu as raison...
    tu pourras d'ailleurs remarque que j'ai nuancé mes propos :
    il me semble que tu peux faire plus simple :

  5. #5
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Ouais, tu essaies de nous amadouer avec le lapin trop chou ?
    Nous sommes incorruptibles !

    Je déconne.
    En fait, j'ai fait la remarque juste parce que j'avais envie de me la péter en ayant 2 points dans mon post...

    (aaaah, je vais me pendre)

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/04/2007, 11h10
  2. [SQL] Problème avec nombre d'enregistrements dans une table
    Par zana74 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 14/08/2006, 13h28
  3. Problème avec nombre d'enregistrements dans une table
    Par zana74 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/08/2006, 13h21
  4. Recherche de l'identifiant max dans une table
    Par Asdorve dans le forum Langage SQL
    Réponses: 10
    Dernier message: 04/03/2005, 17h53
  5. recherche du nombre d'occurences dans une table
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/01/2004, 20h03

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