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

Répondre à