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

Développement SQL Server Discussion :

Besoin d'aide pour un select avec plusieurs conditions


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2023
    Messages : 8
    Par défaut Besoin d'aide pour un select avec plusieurs conditions
    Bonsoir,

    Je cherche à faire une requête multi tables, mais je tourne en rond sans trouver de solution.
    Table 1 :
    Nom : LIGNE
    Colonnes : L_CODEARTICLE, L_NUMERO

    Table 2 :
    Nom : PIECE
    Colonnes : P_DATEPIECE, P_NUMERO, P_NATURE


    L_NUMERO = P_NUMERO

    La table PIECE contient la liste des documents commerciaux (factures, devis, commandes...)
    La table LIGNE contient le contenu de ces documents commerciaux

    Le but est de sélectionner les pièces comprenant les lignes avec le code article comprenant le mot "spec" mais ne comprenant pas les lignes avec le code article commençant par "pack"


    Voici mon code actuel, mais qui ne convient pas car des pièces comprenant les articles "xxxx.spec" et les articles "pack.xxxx" sont également sélectionnées.
    Je n'arrive pas à voir d'où vient l'erreur.

    Merci d'avance pour votre aide.

    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
     
    SELECT 
    	L_CODEARTICLE,
    	L_NUMERO,
    	P_NATURE,
    	P_DATEPIECE
    FROM
    	LIGNE
            LEFT JOIN PIECE ON P_NUMERO = L_NUMERO
    WHERE
    	P_DATEPIECE > '2023-01-01'
    	AND P_NATURE = 'CO'
    	AND (
    		L_CODEARTICLE like '%spec'
    		AND L_CODEARTICLE not like 'pack%'
    		)
    ORDER BY 
    	P_NUMERO

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 613
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Quelque chose comme ceci :

    Code SQL : 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
    SELECT L_CODEARTICLE
         , L_NUMERO
         , P_NATURE
         , P_DATEPIECE
    FROM   PIECE
    WHERE  P_DATEPIECE > '2023-01-01'
      AND  P_NATURE = 'CO'
      AND  EXISTS
          (SELECT 1
           FROM LIGNE
           WHERE L_NUMERO = P_NUMERO
             AND L_CODEARTICLE like '%spec%'
          )
      AND NOT EXISTS
          (SELECT 1
           FROM LIGNE
           WHERE L_NUMERO = P_NUMERO
             AND L_CODEARTICLE like 'pack%'
          )
    ORDER BY P_NUMERO

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2023
    Messages : 8
    Par défaut
    Merci.
    Je vais me baser sur cette solution.

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 613
    Billets dans le blog
    10
    Par défaut
    Heu, ma solution proposée ne fonctionnera pas puisque la clause SELECT mentionne des colonnes des deux tables.
    Il faut donc la remplacer par ceci :

    Code SQL : 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
    SELECT L_CODEARTICLE
         , L_NUMERO
         , P_NATURE
         , P_DATEPIECE
    FROM   PIECE
    LEFT JOIN LIGNE
       ON  L_NUMERO = P_NUMERO
      AND  L_CODEARTICLE like '%spec%'
    WHERE  P_DATEPIECE > '2023-01-01'
      AND  P_NATURE = 'CO'
      AND NOT EXISTS
          (SELECT 1
           FROM LIGNE
           WHERE L_NUMERO = P_NUMERO
             AND L_CODEARTICLE like 'pack%'
          )
    ORDER BY P_NUMERO

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2023
    Messages : 8
    Par défaut
    En me basant sur votre solution, j'avais rajouté le JOIN :-)
    Merci pour votre aide

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

Discussions similaires

  1. besoin d'aide pour macro : rechercheV avec plusieurs résultats
    Par alexine35 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/02/2018, 17h48
  2. Réponses: 2
    Dernier message: 29/08/2012, 15h44
  3. Besoin d'aide pour lire son avec SDL
    Par Spooky6900 dans le forum SDL
    Réponses: 1
    Dernier message: 28/02/2007, 18h12
  4. besoin d'aide pour une jointure avec une exclusion
    Par manu_71 dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/02/2007, 11h22
  5. [PHP-JS] besoin d'aide pour menu déroulant avec lien
    Par Damarus dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 18h43

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