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

MS SQL Server Discussion :

Requete SQL [différence]


Sujet :

MS SQL Server

Vue hybride

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Par défaut Requete SQL [différence]
    Bonjour,

    Petit problème de requête toute simple dont je ne vois pas pourquoi ca marche pas

    select ent.ENT_CLEF, ent.ENT_NUM_IDENT, ent.ENT_NOM, ent.ENT_VILLE, ent.ENT_DEPARTEMENT, ent.ENT_TYP_CLEF
    from entreprise ent

    where ent.ENT_TYP_CLEF = 1
    and ent.ENT_CLEF not in

    (

    SELECT adh.ADHENT_ENT_CLEF FROM AdhesionEntreprise adh
    LEFT JOIN Application app ON adh.ADHENT_APP_ID=app.APP_ID
    WHERE app.APP_LIBELLE like 'blabla')

    ORDER BY ent.ENT_DEPARTEMENT, ent.ENT_NOM;

    Alors quand je teste la première requete, elle me donne par exemple (je raccourci les champs car c'est trop long sinon)
    1 23 Truc Rennes 35
    2 45 Machin Saint Brieuc 22
    ...

    et la 2ème requete me donne par exemple
    1
    4
    ...

    et quand j'éxécute la requete entière elle me donne entre autre comme résultat cette fameuse ligne 1 23 Rennes 35

    alors que normalement elle doit ne pas etre prise en compte et que je devrai avoir 2 45 Machin Saint Brieuc 22 !!!!
    Je ne comprends pas!

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    essaies en mettant les parenthèses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    select ent.ENT_CLEF, ent.ENT_NUM_IDENT, ent.ENT_NOM, ent.ENT_VILLE, ent.ENT_DEPARTEMENT, ent.ENT_TYP_CLEF
    from entreprise ent
    where 
    (ent.ENT_TYP_CLEF = 1)
    and 
    (ent.ENT_CLEF not in
    (SELECT adh.ADHENT_ENT_CLEF FROM AdhesionEntreprise adh
    LEFT JOIN Application app ON adh.ADHENT_APP_ID=app.APP_ID
    WHERE app.APP_LIBELLE like 'blabla')
    )
    ORDER BY ent.ENT_DEPARTEMENT, ent.ENT_NOM;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Par défaut
    Il n'aime pas les parenthèses avant le and donc j'ai essayé en mettant
    ... and (ent.ENT_CLEF not in (....))

    car ne marche pas non plus

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    c'est pas normal

    peux-tu fournir la requete exacte ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Par défaut
    Alors quand j'éxécute ma requete (celle marqué plus haut) elle marche finalement (je comprends pas pourquoi elle se met a marcher maintenant).
    Cette requete figure dans uen procédure stockée dont voici le code exact

    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS OFF
    GO


    /****** Objet : Procédure stockée dbo.P_REF_LireEntrepriseNonAdherente Date du script : 15/06/2007 ******/
    /******************************************************************
    Auteur : ****
    Date de création : 05/01/2004
    Nom de fonction/Procédure : P_REF_LireEntrepriseNonAdherente
    Paramètres entrées : @pApplication : UID d'une application
    Paramètres sorties :
    Objet : Recherche des entreprises non adhérentes à une application
    Auteur de modification : JPB
    Date de modification : 15/06/2007
    Objet de la modification : Critère de tri
    ******************************************************************/
    ALTER PROCEDURE P_REF_LireEntrepriseNonAdherente @pApplication uniqueidentifier, @pTri VARCHAR(50) = ''
    AS
    BEGIN
    DECLARE @Requete VARCHAR(255);
    IF @pTri = '' OR @pTri = 'ENT_DEPARTEMENT'
    BEGIN
    SELECT ent.ENT_CLEF, ent.ENT_NUM_IDENT, ent.ENT_NOM, ent.ENT_VILLE, ent.ENT_DEPARTEMENT
    FROM entreprise ent
    WHERE ent.ENT_TYP_CLEF = 1 AND ent.ENT_CLEF NOT IN (

    SELECT adh.ADHENT_ENT_CLEF FROM AdhesionEntreprise adh
    WHERE adh.ADHENT_APP_ID like @pApplication)
    ORDER BY ent.ENT_DEPARTEMENT, ent.ENT_NOM;
    END

    ELSE
    BEGIN
    SET @Requete = 'SELECT ent.ENT_CLEF, ent.ENT_NUM_IDENT, ent.ENT_NOM, ent.ENT_VILLE, ent.ENT_DEPARTEMENT
    FROM entreprise ent
    WHERE ent.ENT_TYP_CLEF = 1 AND ent.ENT_CLEF NOT IN (

    SELECT adh.ADHENT_ENT_CLEF FROM AdhesionEntreprise adh
    WHERE adh.ADHENT_APP_ID like @pApplication)
    ORDER BY ent.ENT_DEPARTEMENT, ent.ENT_NOM; ' + @pTri;

    Execute (@Requete);
    END
    END

    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO
    je fais appel a cette procédure pour générer un tableau et c'est ds ce tableau que je retrouve des résultats qui ne devrait pas y etre !

  6. #6
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    Une , et pas un ; ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY ent.ENT_DEPARTEMENT, ent.ENT_NOM; ' + @pTri;

Discussions similaires

  1. Différence de date dans requete SQL
    Par GarsDuCalvados dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/11/2010, 12h28
  2. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  3. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 16h46
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

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