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

SQL Oracle Discussion :

count(*) sur jointure


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Points : 10
    Points
    10
    Par défaut count(*) sur jointure
    Bj
    je fais un select 'nbr', count(*) sur une jointure entre 2 tables ...

    sql me retourne "aucune ligne sélectionnée" alors que j'aimerais nbr 0.

    la même opération sur une table seule retourne nbr 0 quand pas de ligne.

    avez vous une astuce ?

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Peux tu donner ta requête car ça marche bien avec une jointure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 'nbr', COUNT(*)
    FROM dual a, dual b
    WHERE a.dummy = b.dummy || 'C'
     
    'NBR'	COUNT(*)
    nbr	0
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Quelle version d'Oracle ? Avez vous un exemple ?
    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
     
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
    Connected as mni
     
    SQL> 
    SQL> select 'nbr', count(*)
      2    from hr.employees
      3         Join
      4         hr.departments
      5   Using (Department_Id)
      6   where 1 = 2
      7  /
     
    'NBR'   COUNT(*)
    ----- ----------
    nbr            0
     
    SQL>

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    oracle 10g

    exemple de ma requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select to_char(sysdate-1,'DDMMYYYY), b.periodeversement, 'NBR', count(*) 
    from ordre_paiement c, versement d 
    where c.refversement = d.refversement 
    group by b.periodeversement;
    aucune ligne sélectionée


    j'aimerais donc : 29062010 20100615 NBR 0

  5. #5
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Merci d'éditer ton post pour mettre la balise Code (l'icône #)

    C'est pas la même chose, là tu groupes par un élément.
    Il faut donc faire une jointure externe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select to_char(sysdate-1,'DDMMYYYY'), b.periodeversement, 'NBR', count(*) 
    from ordre_paiement c, versement d where c.refversement = d.refversement (+)
    group by b.periodeversement;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    merci pour ton aide mais j'ai tj le pb

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select to_char (sysdate-1,'DDMMYYYY'), 'ABO',d.periodeversement, count (*), trunc(sum(d.montantversement))
    from dgi_ordre_paiement c, dgi_versement d
    where substr(c.DATEORDREPAIEMENT,1,8) = to_char(sysdate-1,'DDMMYYYY') and c.refversement = d.refversement (+) and c.natureimpot = '20'
    group by d.periodeversement
    SQL> /
     
    aucune ligne sélectionnée

  7. #7
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    A chaque fois tu ajoutes quelque chose de nouveau dans ta requete...
    au message 4 tu as ecrit ceci
    Citation Envoyé par macadam75 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where c.refversement = d.refversement
    et au message 6, c'est ceci
    Citation Envoyé par macadam75 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    where substr(c.DATEORDREPAIEMENT,1,8) = to_char(sysdate-1,'DDMMYYYY')
    and c.refversement = d.refversement (+)
    and c.natureimpot = '20'
    Essaye tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    where c.refversement = d.refversement (+)
    Si ca marche, cela voudrait dire que tes 2 autres conditions (c.natureimpot = '20' AND substr(c.DATEORDREPAIEMENT,1,8) = to_char(sysdate-1,'DDMMYYYY')) ne sont pas verifiées c'est pourquoi tu n'as aucune ligne en retour.
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

Discussions similaires

  1. [Doctrine] Count sur jointure
    Par Leward dans le forum ORM
    Réponses: 0
    Dernier message: 11/11/2011, 03h24
  2. [SQL] Count sur jointure
    Par oim dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/01/2008, 16h18
  3. [MySQL 4.1] Count sur jointure avec null
    Par Arnard dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/07/2007, 09h38
  4. un count sur une jointure et ca ne fonctionne pas
    Par elbronziero dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/10/2004, 11h23
  5. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 16h53

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