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 :

pb requete


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2
    Points : 4
    Points
    4
    Par défaut [Resolu]pb requete
    J’ai 3 tables
    Une table question (numquest)
    Une table partie (numpartie)
    Une table poser (numquest,numpart)

    Comment rechercher dans poser s’il possède des enregistrements de la partie en cours?

    Mon problème est que tant que je n’ai pas d’insertion dans poser il ne trouve aucun enregistrement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select Count * from poser where numpartie=1 ;

  2. #2
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 171
    Points : 126
    Points
    126
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * 
    FROM Poser P
    INNER JOIN Partie A ON P.NumPart = A.NumPartie

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Salut,

    tu peu aussi l'écrire de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     SELECT COUNT(a.*) 
    FROM poser a, partie b
    WHERE numpartie = 1 
       AND b.numpartie = a.numpartie(+)
    Le problème c'est qu'il ne faut jamais de conditions lorsque tu fais une jointure externe. Donc ce n'est pas sure que ça marche

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    Citation Envoyé par BBOU
    Salut,

    tu peu aussi l'écrire de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     SELECT COUNT(a.*) 
    FROM poser a, partie b
    WHERE numpartie = 1 
       AND b.numpartie = a.numpartie(+)
    Attention cette syntaxe n'est pas normé SQL, c'est une syntaxe Oracle.

    La syntaxe SQL est avec le Inner Join
    http://sqlpro.developpez.com/SQL_AZ_3.html

  5. #5
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 54
    Points : 65
    Points
    65
    Par défaut
    La requete précédente ne doit rien renvoyer si pas d'occurence dans poser pour numpartie = 1


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT
                sum( coalesce( b.numquest  / b.numquest , 0 ) )
    FROM 
                Partie A
    Left JOIN
                Poser b 
    ON 
                B.NumPart = A.NumPartie
    Where
                a.numpartie = 1
    Renvoi 0 si aucune occurence, le nombre d'occurences pour a.numpartie sinon
    La valeur attribuée à a.numpartie est dans la clause where, par ce que j'utilise en général du statique et qu'il n'apprécie pas les HOST VARIABLES dans la clause ON
    (j'utiliserai en réalité une sous-selection sur la table Partie pour ne pas plomber l'accés ).
    Pour une utilisation en dynamique no-probleme dans le ON

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 774
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 774
    Points : 52 747
    Points
    52 747
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT COUNT(numpart)
    FROM   question q
           LEFT OUTER JOIN poser p
                ON q.numquest = p.numquest  
                   AND p.numpart = 1
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par BBOU
    Le problème c'est qu'il ne faut jamais de conditions lorsque tu fais une jointure externe.
    dans quel SGBD ? Ca ne pose aucun probléme à Oracle en tout cas

  8. #8
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 54
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par SQLpro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT COUNT(numpart)
    FROM   question q
           LEFT OUTER JOIN poser p
                ON q.numquest = p.numquest  
                   AND p.numpart = 1
    A +
    Oui, mais dans certains cas ( DB2V7 / MVS ) le count sur des NULL n'est pas trés bien digéré meme si le resultat donne bien 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DSNT400I SQLCODE = 000,  SUCCESSFUL EXECUTION
    DSNT418I SQLSTATE   = 01003 SQLSTATE RETURN CODE
    DSNT416I SQLERRD    = 0  0  0  -1  0  0 SQL DIAGNOSTIC INFORMATION
    DSNT416I SQLERRD    = X'00000000'  X'00000000'  X'00000000'  X'FFFFFFFF'
             X'00000000'  X'00000000' SQL DIAGNOSTIC INFORMATION
    DSNT417I SQLWARN0-5 = W,,W,,, SQL WARNINGS
    DSNT417I SQLWARN6-A = ,,,,   SQL WARNINGS
    DSNE610I NUMBER OF ROWS DISPLAYED IS 1
    DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 100

  9. #9
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    OK

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

Discussions similaires

  1. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    Réponses: 12
    Dernier message: 18/11/2004, 16h15
  2. Requete requête sous sybase
    Par eddie dans le forum Sybase
    Réponses: 3
    Dernier message: 02/04/2003, 14h51
  3. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  4. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43
  5. [Kylix] Requetes Kylix pour postgres
    Par Miltown dans le forum EDI
    Réponses: 1
    Dernier message: 29/05/2002, 20h22

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