Je viens de monter avec le SGBDR Firebird une toute petite base avec 2
tables (DEMANDEURS et MEDIATIONs qui remplace la requête
Mediations_toutes_Selection_periode) :
DEMANDEURS (NO_DEM, PART2ALLOC)
MEDIATION (DEMANDEUR)
J'ai créé les enregistrements tels qu'ils sont dans ta base
(0,1,2,3,4,5) et écrit exactement la même requête que la tienne
(Regime_allocations_part2_CMSA), sansla condition IFNULL.
Avec Firebird donc, la requête me rend bien un enregistrement (au
contraire de OOo Base qui ne rend rien) dans lequel :
PART2ALLOC a la "valeur" NULL : normal
et NOMBRE2 est également NULL ! Et là ça me déstabilise :-) et j'en
perds mon SQL ! car je pensais bien trouver 0 !
Ca veut dire que dans ce cas-là ta requête avec la condition IFNULL
fonctionnerait. Je n'ai pour l'instant pu tester ça avec Firebird car
cette condition IFNULL n'existe pas, il faudrait que je trouve l'équivalent.
Ceci dit, il y a quand même un petit problème dans Base parce que on
devrait quand même obtenir un enregistrement :
- soit (NULL, 0),
- soit (NULL , NULL).
Le 22/04/2010 10:24, Marie-Pierre CORONEL a écrit :
Ca fonctionne comme ça, je ne touche plus à rien...
merci en tous cas doc, j'avais essayé tout ce que tu as utilisé (y
compris essayé les 4 jointures qui aboutissaient toutes à un résultat
faux pour moi -_-) je n'avais pas du traiter les choses dans le bon
ordre... Encore que non, je n'avais pas réessayé les jointures avec
les vues...
Le 22 avril 2010 09:45, ribotb<rib...@gmail.com> a écrit :
La requête me semble correcte... et on peut supprimer la condition IFNULL ,
superflue , compte tenu de mes remarques sur le NULL.
Le 22/04/2010 08:53, ribotb a écrit :
J'ai exécuté la requête Regime_allocations_part2_CMSA qui ne rend aucun
enregistrement (sans vérifier si c'est le résultat attendu ou non mais à
première vue la requête me semble correcte) .
On est donc bien dans le cas de mon "théorème" : "s'il n'y a pas
d'enregistrement dans l'ensemble de données les deux fonctions
[COUNT(*) ou COUNT(champ)] renvoient 0."
Donc je ne comprends pas pourquoi on ne récupère pas 0.
Le 21/04/2010 23:51, Docgranville a écrit :
ribotb a écrit :
Ça devrait renvoyer 0 :
"COUNT(*) et COUNT(FieldName) ne renvoient jamais NULL :* s'il n'y a
pas d'enregistrement dans l'ensemble de données les deux fonctions
renvoient 0.* Ainsi, COUNT(FieldName) renvoie 0 si tous les champs
FieldName dans l'ensemble de données sont
NULL.".
Je suis" sec" .
Je rappelle ce que j'ai dit dans mon second message (celui de 19h04) et
dont je pense qu'il faut y voir l'origine de la difficulté rencontrée par
Marie-Pierre : sa requête porte sur une vue (donc sur le résultat d'une
requête) qui elle même ne renvoie AUCUN tuple ; la vue ne comportant donc
aucun enregistrement, je pense que l'instruction ifnull ne peut pas remplir
son office ; cette instruction peut substituer une valeur spécifique à un
champ "null" d'un tuple mais encore faut-il qu'il y ait un tuple ; en
l'occurrence (c'est un cas particulier) il n'y a pas de champ "null" auquel
substituer la valeur définie, puisque ce champ n'existe pas (il n'existe que
quand il y a un tuple pour le porter).
C'est l'explication qui m'apparaît la plus plausible pour le résultat
constaté.
A+
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org