|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : janvier 2004 Messages : 52 ![]() |
Bonjour,
J'ai une requete avec un count(*) avec des clauses where. Est ce que l'on peut retourner 0 quand il n'y a pas de valeur retourné (no rows returned) Merci. Oracle 10g. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Utilisez la pseudo table DUAL avec un COALESCE ou un decode.
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
![]() ![]() ![]() Christophe Warin Inscription : octobre 2004 Messages : 8 635 ![]() |
A priori, Count retounre toujours une valeur non ?
|
|
|
00
|
|
|
#4 | |||
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : janvier 2004 Messages : 52 ![]() |
sur que le count(*) retourne toujours une valeurs mais si je donne pas tous les détails
c'est bien un select avec un count(*) mais il y a d'autres colonnes dans le select et un group by. Code :
SELECT to_char(date_depart,'WW') AS SEMAINE,PAYS, COUNT (*) AS DISPO FROM... WHERE... GROUP BY PAYS,to_char(date_depart,'WW') ORDER BY SEMAINE |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
bah si la clause WHERE ne permet pas de sélectionner une semaine et un pays qu'est ce que tu veux qu'il affiche quand le compte est à 0 ?
|
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : janvier 2004 Messages : 52 ![]() |
Quand cela fonctionne :
SEMAINE PAYS DISPO 45 MAR 12 Quand il n'y a pas de résultat j'ai un now rows returned et je voudrai cela a la place SEMAINE PAYS DISPO 44 MAR 0 Merci. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 812 ![]() |
Excuse moi mais comment veux-tu que la requête puisse deviner la semaine et le pays ?
A moins d'utiliser une jointure ouverte, il n'y a pas de solution autre que de retraiter applicativement. Mais pour te conseiller sur la jointure ouverte il faudrait ton code complet.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes. Mon combat pour les droits des consommateurs face aux abus des grandes marques. |
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
Citation:
|
|
|
|
00
|
|
|
#10 | ||
|
Invité régulier
![]() Inscription : janvier 2004 Messages : 52 ![]() |
Code :
Je n'ai aucun resultat pour la semaine 44 je voudrai un 0 |
||
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 812 ![]() |
Ca doit donner ce qu'il faut. A vérifier quand même...
Code :
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes. Mon combat pour les droits des consommateurs face aux abus des grandes marques. |
||
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : janvier 2004 Messages : 52 ![]() |
ORA-01417: une table peut être de jointure externe pour une autre table au moins
c'est quoi les (+) c'est outer join ? |
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
Est-ce que tu pourrais préfixer tes colonnes, car là, on sait pas qu'est-ce qui appartient à qui.....
(en fait je crain que tu demandes un trucs physiquement impossible mais je voudrais en avoir le coeur net... )à nuke_y, 2 remarques: 1- Il ne faut pas faire un count(*) mais un count sur un élément de l'entité facultative, sinon tu auras toujours au moins 1.... 2- ta requête ne marche pas parceque l'entité facultative se trouve au milieu du parcours... donc si c'est facultatif, c'est qu'il peut ne pas y avoir de données, et si y'a pas de donnée, comme faire le lien etre les 2 autres entités.... |
|
|
00
|
|
|
#14 | ||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
moi je "jointurerai" plutôt avec :
Code :
|
||
|
|
00
|
|
|
#15 | ||
|
Invité régulier
![]() Inscription : janvier 2004 Messages : 52 ![]() |
moi aussi je me demande si c'est possible je sais que pour la semaine 44 cette condition n'est pas rempli REF_VILLE.VILLE = 'BDX' mais afficher la dispo 0 pour la semaine 44.
Code :
|
||
|
|
00
|
|
|
#16 | |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 812 ![]() |
Citation:
il reste le UNION de Fred...
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes. Mon combat pour les droits des consommateurs face aux abus des grandes marques. |
|
|
|
00
|
|
|
#17 | ||
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
c'est bien ce que je craignais, comment veux tu qu'il affiche un '44' (par exemple) alors que cette donnée n'existe nulle part
?Oracle ne va pas deviner à ta place les valeurs d'axes que tu veux afficher, ces axes doivent correspondre à des entités bien solides... Pour commencer, il faut donc que tu ais une entité qui contienne toutes tes valeurs de semaines (soit en les mettant dans une tables, soit en utilisant la vue dynamique de Fred). Ensuite il faut que tu fasses une sous-requête dynamique qui fasse un produit cartésien pour constituer toutes tes possibilités et ensuite du fais un parcours par jointure externe. Code :
|
||
|
|
00
|
|
|
#18 |
|
Invité régulier
![]() Inscription : janvier 2004 Messages : 52 ![]() |
cette donnée est bien dans ma vue. mais c'est cette condition qui n'est pas rempli AND REF_VILLE.VIL_LABEL = 'PARIS'
mais je vois le probleme... je pensai que c'etait plus simple. merci a tous. |
|
|
00
|
|
|
#19 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
Il faut que ta requête fonctionne meme si ta vue est completement vide, c'est en ce sens que je pense que ta donnée n'est pas si obligatoire que ça dans ta vue....
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com