Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-23 Par sujet Docgranville

Le 23/04/2010 09:45, Marie-Pierre CORONEL a écrit :

Salut,

Il y a quelque chose qui pourrait me permettre de réduire le nombre de
tables, c'est de jouer sur les clés (concaténation par exemple de
civ+numéro de médiation, pen+numéro de médiation). J'ai vu qu'il y
avait des fils sur le sujet dans le forum, mais prise par l'urgence,
je n'ai pas planché le sujet. Je vais aller voir, si ça peut se faire
sans programmation, ça allègerait considérablement la base.
   

Bonjour Marie-Pierre,

Je n'ai pas encore eu le temps de répondre utilement à ton message 
d'hier soir, j'essaierai de le faire ce week-end.


En revanche, je ne vois pas bien par quel moyen la concaténation que tu 
évoques pourrait être de nature à réduire le nombre de tes tables.


Pour moi, le point de départ de la réflexion, c'est que l'objectif de 
cette base étant de gérer des procédures, il est indispensable que 
celles-ci soient regroupées dans une seule et unique table ; je pense 
vraiment que, si la médiation elle-même s'adresse aux personnes, la base 
de son côté, constitue une aide à la gestion de la procédure et doit 
donc être centrée sur elle ; en conséquence, le numéro d'identification 
unique de la procédure (la clef primaire dans la table regroupant les 
procédures) servira ensuite dans les autres tables, à identifier les 
personnes concernées par cette procédure, les évènements affectant cette 
procédure, etc, etc... ; et je pense que ça facilitera grandement la 
sortie de statistiques (parce que elles, j'imagine bien qu'elles portent 
sur les procédures, pas sur les personnes).


D'ailleurs, l'ambigüité que tu soulignais entre le nom et la fonction de 
ta table Demandeurs, vient (selon moi) du fait quelle a une double 
fonction : identifier les parties ET marquer la saisine du service ; 
même si elles sont intimement liées (s'il n'y a pas de personnes, il n'y 
a pas de conflit et donc pas de médiation) et qu'une distinction peut 
paraître artificielle, je crois préférable (pour la souplesse 
d'utilisation et de maintenance ultérieure de ta base, d'enregistrer 
dans des tables séparées les données relatives aux procédures d'une part 
et celles relatives aux personnes concernées d'autre part.


Il me semble que c'est cette démarche là qui devrait te permettre de 
réduire un peu le nombre de tes tables.


A+



-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-23 Par sujet Marie-Pierre CORONEL
En fait, ça m'évitait potentiellement d'ajouter un champ dans les
tables secondaires qui contienne civil ou pénal (un connecteur pour
savoir à quelle table on se branche) de manière à différencier la
médiation civile 0 de la médiation pénale 0. Mais évidemment, moi je
reste sur 2 procédures et toi tu défends la procédure unique :D

De mon côté, j'ai interrogé le service informatique de la mairie,
parce que si j'utilisais MySQL, ce n'est pas sur mon PC qu'il devrait
être installé mais sur l'un de leurs serveurs...

Le 23 avril 2010 10:37, Docgranville docgranvi...@aol.com a écrit :
 Le 23/04/2010 09:45, Marie-Pierre CORONEL a écrit :

 Salut,

 Il y a quelque chose qui pourrait me permettre de réduire le nombre de
 tables, c'est de jouer sur les clés (concaténation par exemple de
 civ+numéro de médiation, pen+numéro de médiation). J'ai vu qu'il y
 avait des fils sur le sujet dans le forum, mais prise par l'urgence,
 je n'ai pas planché le sujet. Je vais aller voir, si ça peut se faire
 sans programmation, ça allègerait considérablement la base.


 Bonjour Marie-Pierre,

 Je n'ai pas encore eu le temps de répondre utilement à ton message d'hier
 soir, j'essaierai de le faire ce week-end.

 En revanche, je ne vois pas bien par quel moyen la concaténation que tu
 évoques pourrait être de nature à réduire le nombre de tes tables.

 Pour moi, le point de départ de la réflexion, c'est que l'objectif de cette
 base étant de gérer des procédures, il est indispensable que celles-ci
 soient regroupées dans une seule et unique table ; je pense vraiment que, si
 la médiation elle-même s'adresse aux personnes, la base de son côté,
 constitue une aide à la gestion de la procédure et doit donc être centrée
 sur elle ; en conséquence, le numéro d'identification unique de la procédure
 (la clef primaire dans la table regroupant les procédures) servira ensuite
 dans les autres tables, à identifier les personnes concernées par cette
 procédure, les évènements affectant cette procédure, etc, etc... ; et je
 pense que ça facilitera grandement la sortie de statistiques (parce que
 elles, j'imagine bien qu'elles portent sur les procédures, pas sur les
 personnes).

 D'ailleurs, l'ambigüité que tu soulignais entre le nom et la fonction de ta
 table Demandeurs, vient (selon moi) du fait quelle a une double fonction :
 identifier les parties ET marquer la saisine du service ; même si elles sont
 intimement liées (s'il n'y a pas de personnes, il n'y a pas de conflit et
 donc pas de médiation) et qu'une distinction peut paraître artificielle, je
 crois préférable (pour la souplesse d'utilisation et de maintenance
 ultérieure de ta base, d'enregistrer dans des tables séparées les données
 relatives aux procédures d'une part et celles relatives aux personnes
 concernées d'autre part.

 Il me semble que c'est cette démarche là qui devrait te permettre de réduire
 un peu le nombre de tes tables.

 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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-23 Par sujet Marie-Pierre CORONEL
Ah et je suis parfaitement d'accord, le point d'entrée devrait être la
procédure. Mais le problème c'est qu'une procédure ne peut contenir
plusieurs conflits, alors qu'un même conflit peut contenir plusieurs
procédures...

Le 23 avril 2010 11:28, Marie-Pierre CORONEL
mariepierre@gmail.com a écrit :
 En fait, ça m'évitait potentiellement d'ajouter un champ dans les
 tables secondaires qui contienne civil ou pénal (un connecteur pour
 savoir à quelle table on se branche) de manière à différencier la
 médiation civile 0 de la médiation pénale 0. Mais évidemment, moi je
 reste sur 2 procédures et toi tu défends la procédure unique :D

 De mon côté, j'ai interrogé le service informatique de la mairie,
 parce que si j'utilisais MySQL, ce n'est pas sur mon PC qu'il devrait
 être installé mais sur l'un de leurs serveurs...

 Le 23 avril 2010 10:37, Docgranville docgranvi...@aol.com a écrit :
 Le 23/04/2010 09:45, Marie-Pierre CORONEL a écrit :

 Salut,

 Il y a quelque chose qui pourrait me permettre de réduire le nombre de
 tables, c'est de jouer sur les clés (concaténation par exemple de
 civ+numéro de médiation, pen+numéro de médiation). J'ai vu qu'il y
 avait des fils sur le sujet dans le forum, mais prise par l'urgence,
 je n'ai pas planché le sujet. Je vais aller voir, si ça peut se faire
 sans programmation, ça allègerait considérablement la base.


 Bonjour Marie-Pierre,

 Je n'ai pas encore eu le temps de répondre utilement à ton message d'hier
 soir, j'essaierai de le faire ce week-end.

 En revanche, je ne vois pas bien par quel moyen la concaténation que tu
 évoques pourrait être de nature à réduire le nombre de tes tables.

 Pour moi, le point de départ de la réflexion, c'est que l'objectif de cette
 base étant de gérer des procédures, il est indispensable que celles-ci
 soient regroupées dans une seule et unique table ; je pense vraiment que, si
 la médiation elle-même s'adresse aux personnes, la base de son côté,
 constitue une aide à la gestion de la procédure et doit donc être centrée
 sur elle ; en conséquence, le numéro d'identification unique de la procédure
 (la clef primaire dans la table regroupant les procédures) servira ensuite
 dans les autres tables, à identifier les personnes concernées par cette
 procédure, les évènements affectant cette procédure, etc, etc... ; et je
 pense que ça facilitera grandement la sortie de statistiques (parce que
 elles, j'imagine bien qu'elles portent sur les procédures, pas sur les
 personnes).

 D'ailleurs, l'ambigüité que tu soulignais entre le nom et la fonction de ta
 table Demandeurs, vient (selon moi) du fait quelle a une double fonction :
 identifier les parties ET marquer la saisine du service ; même si elles sont
 intimement liées (s'il n'y a pas de personnes, il n'y a pas de conflit et
 donc pas de médiation) et qu'une distinction peut paraître artificielle, je
 crois préférable (pour la souplesse d'utilisation et de maintenance
 ultérieure de ta base, d'enregistrer dans des tables séparées les données
 relatives aux procédures d'une part et celles relatives aux personnes
 concernées d'autre part.

 Il me semble que c'est cette démarche là qui devrait te permettre de réduire
 un peu le nombre de tes tables.

 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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-23 Par sujet Docgranville

Le 23/04/2010 11:29, Marie-Pierre CORONEL a écrit :

Ah et je suis parfaitement d'accord, le point d'entrée devrait être la
procédure. Mais le problème c'est qu'une procédure ne peut contenir
plusieurs conflits, alors qu'un même conflit peut contenir plusieurs
procédures...
   

Selon moi, ce n'est pas un problème.

Il faut déterminer un point d'entrée ; ensuite, qu'on l'appelle conflit, 
procédure, médiation, grand happening, manifestation ou xgrtpjoif, ça 
ne change pas grand chose.


Appelons le conflit si tu veux, mais en tout cas, c'est ce truc là qui 
constitue ton point central et dont la clef primaire servira de clef 
externe dans un certain nombre d'autres tables ; ensuite, tu crées une 
une table parties, une table procédures (au sens que tu lui donnes dans 
ton message ci-dessus, puisque la table médiation est déjà utilisée) et 
une table suivi (dont la clef externe sera la clef primaire de la table 
procédures) et toutes le informations sont centralisées dans des tables 
uniques (il n'y a pas moitié des noms à un endroit d'une table et 
l'autre moitié à un autre endroit de la même table, pas moitié des 
procédures -toujours au sens de ton message- dans une table et l'autre 
moitié dans une autre, etc...)


Certes, je viens de rajouter une table, mais j'ai aussi réuni en une 
seule, tes tables procédures, donc on a égalité.


(pour Mysql, dans un contexte mono-utilisateur, rien n'empêche qu'il 
soit sur le poste de l'utilisateur ; en fait, la notion serveur-client 
dans Mysql n'est qu'une notion logique, pas nécessairement matérielle ; 
le serveur Mysql et le client Mysql peuvent très bien être sur le même PC)


A+



-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-23 Par sujet ribotb

Bonjour Marie-Pierre, bonjour Docgrainville,

Je suis un peu vos échanges intéressants, aussi permettez-moi d'exprimer 
mon point de vue sur la démarche à envisager éventuellement.


1) Je pense qu'il ne faut pas chambouler la base actuelle, surtout si 
elle fonctionne de façon satisfaisante (je ne l'ai pas expertisée :-) 
aussi je me garderais de me prononcer sur cet aspect des choses). Le 
fait que OOo Base soit mono-poste n'est peut-être pas pour l'immédiat un 
handicap s'il y a une seule utilisatrice.

Cette suggestion est le fruit de l'expérience :-)

2) On peut envisager parallèlement une refonte complète de la base (une 
sorte de version 2) et sur ce point il y a deux aspects à prendre en 
compte :

-  l'aspect conceptuel
- l'aspect technique

3) La conception :

Il faut d'abord concevoir le modèle conceptuel des données qui consiste 
à rechercher toutes les données à gérer, leurs règles de gestion, 
définir les entités et les relations, ainsi que les contraintes;
La phase suivante consiste à normaliser le modèle. Il existe un certain 
nombre de formes normales qui permettent d'avoir une base stable (elle 
peut évoluer sans bobos), intègre malgré les mises à jour sur les 
données, et sans redondance d'informations.
Les tables sont la matérialisation physique des relations définies lors 
de la conception.


4) L'implémentation physique :

Il est certain que des vrais SGBDR (tels MySQL, PostgreSQL ou 
Firebird)  sont préférables à OOo Base pour une utilisation 
professionnelle. Il n'en demeure pas moins que le modèle physique issu 
de la phase conception peut être implémenté éventuellement avec OOo Base 
(qui présente l'avantage de permettre de fabriquer assez simplement des 
formulaires plus ou moins complexes.


Personnellement j'utilise Firebird (et aussi OOo Base, ça dépend du 
projet) comme serveur de bases de données et j'utilise IBEasy+ pour le 
développement des applications. Je cite ce logiciel car il prend en  
charge la phase conception (référentiel des données, manipulation des 
concepts de base : domaines, relations, attributs, etc., conception 
graphique de la base)


Vous me direz que ceci est très théorique mais mon propos n'était que de 
suggérer à Marie-Pierre quelques axes de réflexion pour développer sa 
future éventuelle base de données :-)


Bonne journée,
Bernard

Le 23/04/2010 11:29, Marie-Pierre CORONEL a écrit :

Ah et je suis parfaitement d'accord, le point d'entrée devrait être la
procédure. Mais le problème c'est qu'une procédure ne peut contenir
plusieurs conflits, alors qu'un même conflit peut contenir plusieurs
procédures...

Le 23 avril 2010 11:28, Marie-Pierre CORONEL
mariepierre@gmail.com  a écrit :
   

En fait, ça m'évitait potentiellement d'ajouter un champ dans les
tables secondaires qui contienne civil ou pénal (un connecteur pour
savoir à quelle table on se branche) de manière à différencier la
médiation civile 0 de la médiation pénale 0. Mais évidemment, moi je
reste sur 2 procédures et toi tu défends la procédure unique :D

De mon côté, j'ai interrogé le service informatique de la mairie,
parce que si j'utilisais MySQL, ce n'est pas sur mon PC qu'il devrait
être installé mais sur l'un de leurs serveurs...

Le 23 avril 2010 10:37, Docgranvilledocgranvi...@aol.com  a écrit :
 

Le 23/04/2010 09:45, Marie-Pierre CORONEL a écrit :
   

Salut,

Il y a quelque chose qui pourrait me permettre de réduire le nombre de
tables, c'est de jouer sur les clés (concaténation par exemple de
civ+numéro de médiation, pen+numéro de médiation). J'ai vu qu'il y
avait des fils sur le sujet dans le forum, mais prise par l'urgence,
je n'ai pas planché le sujet. Je vais aller voir, si ça peut se faire
sans programmation, ça allègerait considérablement la base.

 

Bonjour Marie-Pierre,

Je n'ai pas encore eu le temps de répondre utilement à ton message d'hier
soir, j'essaierai de le faire ce week-end.

En revanche, je ne vois pas bien par quel moyen la concaténation que tu
évoques pourrait être de nature à réduire le nombre de tes tables.

Pour moi, le point de départ de la réflexion, c'est que l'objectif de cette
base étant de gérer des procédures, il est indispensable que celles-ci
soient regroupées dans une seule et unique table ; je pense vraiment que, si
la médiation elle-même s'adresse aux personnes, la base de son côté,
constitue une aide à la gestion de la procédure et doit donc être centrée
sur elle ; en conséquence, le numéro d'identification unique de la procédure
(la clef primaire dans la table regroupant les procédures) servira ensuite
dans les autres tables, à identifier les personnes concernées par cette
procédure, les évènements affectant cette procédure, etc, etc... ; et je
pense que ça facilitera grandement la sortie de statistiques (parce que
elles, j'imagine bien qu'elles portent sur les procédures, pas sur les
personnes).

D'ailleurs, l'ambigüité que tu soulignais entre le nom et la fonction de ta
table Demandeurs, vient (selon moi) du fait 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-23 Par sujet Marie-Pierre CORONEL
A docgranville : concernant l'utilisation de base en production, je te
recommande d'aller faire un petit tour sur le forum, tu verras qu'on
est de plus en plus nombreux sur le sujet... je réponds actuellement à
quelqu'un qui veut mettre sur base sont cahier des variables de paye
par exemple.

A Bernard,
sur la théorie c'est là que je suis la plus forte, j'ai même eu dans
le temps mon concours de rédacteur option programmeur sur... les
principes de la base de données relationnelle... C'est sur la mise en
pratique que 20 ans après je pêche :D

Le 23 avril 2010 13:08, ribotb rib...@gmail.com a écrit :
 Bonjour Marie-Pierre, bonjour Docgrainville,

 Je suis un peu vos échanges intéressants, aussi permettez-moi d'exprimer mon
 point de vue sur la démarche à envisager éventuellement.

 1) Je pense qu'il ne faut pas chambouler la base actuelle, surtout si elle
 fonctionne de façon satisfaisante (je ne l'ai pas expertisée :-) aussi je me
 garderais de me prononcer sur cet aspect des choses). Le fait que OOo Base
 soit mono-poste n'est peut-être pas pour l'immédiat un handicap s'il y a une
 seule utilisatrice.
 Cette suggestion est le fruit de l'expérience :-)

 2) On peut envisager parallèlement une refonte complète de la base (une
 sorte de version 2) et sur ce point il y a deux aspects à prendre en compte
 :
 -  l'aspect conceptuel
 - l'aspect technique

 3) La conception :

 Il faut d'abord concevoir le modèle conceptuel des données qui consiste à
 rechercher toutes les données à gérer, leurs règles de gestion, définir les
 entités et les relations, ainsi que les contraintes;
 La phase suivante consiste à normaliser le modèle. Il existe un certain
 nombre de formes normales qui permettent d'avoir une base stable (elle
 peut évoluer sans bobos), intègre malgré les mises à jour sur les données,
 et sans redondance d'informations.
 Les tables sont la matérialisation physique des relations définies lors de
 la conception.

 4) L'implémentation physique :

 Il est certain que des vrais SGBDR (tels MySQL, PostgreSQL ou Firebird)
  sont préférables à OOo Base pour une utilisation professionnelle. Il n'en
 demeure pas moins que le modèle physique issu de la phase conception peut
 être implémenté éventuellement avec OOo Base (qui présente l'avantage de
 permettre de fabriquer assez simplement des formulaires plus ou moins
 complexes.

 Personnellement j'utilise Firebird (et aussi OOo Base, ça dépend du
 projet) comme serveur de bases de données et j'utilise IBEasy+ pour le
 développement des applications. Je cite ce logiciel car il prend en  charge
 la phase conception (référentiel des données, manipulation des concepts de
 base : domaines, relations, attributs, etc., conception graphique de la
 base)

 Vous me direz que ceci est très théorique mais mon propos n'était que de
 suggérer à Marie-Pierre quelques axes de réflexion pour développer sa future
 éventuelle base de données :-)

 Bonne journée,
 Bernard

 Le 23/04/2010 11:29, Marie-Pierre CORONEL a écrit :

 Ah et je suis parfaitement d'accord, le point d'entrée devrait être la
 procédure. Mais le problème c'est qu'une procédure ne peut contenir
 plusieurs conflits, alors qu'un même conflit peut contenir plusieurs
 procédures...

 Le 23 avril 2010 11:28, Marie-Pierre CORONEL
 mariepierre@gmail.com  a écrit :


 En fait, ça m'évitait potentiellement d'ajouter un champ dans les
 tables secondaires qui contienne civil ou pénal (un connecteur pour
 savoir à quelle table on se branche) de manière à différencier la
 médiation civile 0 de la médiation pénale 0. Mais évidemment, moi je
 reste sur 2 procédures et toi tu défends la procédure unique :D

 De mon côté, j'ai interrogé le service informatique de la mairie,
 parce que si j'utilisais MySQL, ce n'est pas sur mon PC qu'il devrait
 être installé mais sur l'un de leurs serveurs...

 Le 23 avril 2010 10:37, Docgranvilledocgranvi...@aol.com  a écrit :


 Le 23/04/2010 09:45, Marie-Pierre CORONEL a écrit :


 Salut,

 Il y a quelque chose qui pourrait me permettre de réduire le nombre de
 tables, c'est de jouer sur les clés (concaténation par exemple de
 civ+numéro de médiation, pen+numéro de médiation). J'ai vu qu'il y
 avait des fils sur le sujet dans le forum, mais prise par l'urgence,
 je n'ai pas planché le sujet. Je vais aller voir, si ça peut se faire
 sans programmation, ça allègerait considérablement la base.



 Bonjour Marie-Pierre,

 Je n'ai pas encore eu le temps de répondre utilement à ton message
 d'hier
 soir, j'essaierai de le faire ce week-end.

 En revanche, je ne vois pas bien par quel moyen la concaténation que tu
 évoques pourrait être de nature à réduire le nombre de tes tables.

 Pour moi, le point de départ de la réflexion, c'est que l'objectif de
 cette
 base étant de gérer des procédures, il est indispensable que celles-ci
 soient regroupées dans une seule et unique table ; je pense vraiment
 que, si
 la médiation elle-même s'adresse aux personnes, la base de son côté,
 constitue une aide à 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-23 Par sujet ribotb
Oui mais il semble quand même que la phase de conception ait été sautée 
si j'en juge par les remarques de docgrainville (je n'ai toujours pas ma 
propre idée de ta base car je n'ai pas beaucoup de temps pour m'y 
plonger). Certaines de ses remarques me laissent à penser que le modèle 
des données n'est pas normalisé (pas de 1ère forme normale, semble-t-il, 
ni peut-être de 2nde ou 3ème).
Bon, je ne vais pas te faire un cours sur les formes normales de E.F. 
Codd, tu as du avoir l'occasion de les approcher quand tu travaillais 
sur les principes des bdd relationnelles.


Bernard

Le 23/04/2010 14:53, Marie-Pierre CORONEL a écrit :

A docgranville : concernant l'utilisation de base en production, je te
recommande d'aller faire un petit tour sur le forum, tu verras qu'on
est de plus en plus nombreux sur le sujet... je réponds actuellement à
quelqu'un qui veut mettre sur base sont cahier des variables de paye
par exemple.

A Bernard,
sur la théorie c'est là que je suis la plus forte, j'ai même eu dans
le temps mon concours de rédacteur option programmeur sur... les
principes de la base de données relationnelle... C'est sur la mise en
pratique que 20 ans après je pêche :D

Le 23 avril 2010 13:08, ribotbrib...@gmail.com  a écrit :
   

Bonjour Marie-Pierre, bonjour Docgrainville,

Je suis un peu vos échanges intéressants, aussi permettez-moi d'exprimer mon
point de vue sur la démarche à envisager éventuellement.

1) Je pense qu'il ne faut pas chambouler la base actuelle, surtout si elle
fonctionne de façon satisfaisante (je ne l'ai pas expertisée :-) aussi je me
garderais de me prononcer sur cet aspect des choses). Le fait que OOo Base
soit mono-poste n'est peut-être pas pour l'immédiat un handicap s'il y a une
seule utilisatrice.
Cette suggestion est le fruit de l'expérience :-)

2) On peut envisager parallèlement une refonte complète de la base (une
sorte de version 2) et sur ce point il y a deux aspects à prendre en compte
:
-  l'aspect conceptuel
- l'aspect technique

3) La conception :

Il faut d'abord concevoir le modèle conceptuel des données qui consiste à
rechercher toutes les données à gérer, leurs règles de gestion, définir les
entités et les relations, ainsi que les contraintes;
La phase suivante consiste à normaliser le modèle. Il existe un certain
nombre de formes normales qui permettent d'avoir une base stable (elle
peut évoluer sans bobos), intègre malgré les mises à jour sur les données,
et sans redondance d'informations.
Les tables sont la matérialisation physique des relations définies lors de
la conception.

4) L'implémentation physique :

Il est certain que des vrais SGBDR (tels MySQL, PostgreSQL ou Firebird)
  sont préférables à OOo Base pour une utilisation professionnelle. Il n'en
demeure pas moins que le modèle physique issu de la phase conception peut
être implémenté éventuellement avec OOo Base (qui présente l'avantage de
permettre de fabriquer assez simplement des formulaires plus ou moins
complexes.

Personnellement j'utilise Firebird (et aussi OOo Base, ça dépend du
projet) comme serveur de bases de données et j'utilise IBEasy+ pour le
développement des applications. Je cite ce logiciel car il prend en  charge
la phase conception (référentiel des données, manipulation des concepts de
base : domaines, relations, attributs, etc., conception graphique de la
base)

Vous me direz que ceci est très théorique mais mon propos n'était que de
suggérer à Marie-Pierre quelques axes de réflexion pour développer sa future
éventuelle base de données :-)

Bonne journée,
Bernard

Le 23/04/2010 11:29, Marie-Pierre CORONEL a écrit :
 

Ah et je suis parfaitement d'accord, le point d'entrée devrait être la
procédure. Mais le problème c'est qu'une procédure ne peut contenir
plusieurs conflits, alors qu'un même conflit peut contenir plusieurs
procédures...

Le 23 avril 2010 11:28, Marie-Pierre CORONEL
mariepierre@gmail.coma écrit :

   

En fait, ça m'évitait potentiellement d'ajouter un champ dans les
tables secondaires qui contienne civil ou pénal (un connecteur pour
savoir à quelle table on se branche) de manière à différencier la
médiation civile 0 de la médiation pénale 0. Mais évidemment, moi je
reste sur 2 procédures et toi tu défends la procédure unique :D

De mon côté, j'ai interrogé le service informatique de la mairie,
parce que si j'utilisais MySQL, ce n'est pas sur mon PC qu'il devrait
être installé mais sur l'un de leurs serveurs...

Le 23 avril 2010 10:37, Docgranvilledocgranvi...@aol.coma écrit :

 

Le 23/04/2010 09:45, Marie-Pierre CORONEL a écrit :

   

Salut,

Il y a quelque chose qui pourrait me permettre de réduire le nombre de
tables, c'est de jouer sur les clés (concaténation par exemple de
civ+numéro de médiation, pen+numéro de médiation). J'ai vu qu'il y
avait des fils sur le sujet dans le forum, mais prise par l'urgence,
je n'ai pas planché le sujet. Je vais aller voir, si ça peut se faire
sans programmation, ça allègerait considérablement 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-23 Par sujet Marie-Pierre CORONEL
Et bien, je peux avoir fait des erreurs, mais il n'y a qu'à regarder
le nombre de tables à attribut unique pour voir que j'ai cherché à les
respecter.

Après j'ai fait le choix de mettre dans une même table d'apparentes
redondances (les mêmes éléments d'information sur les deux parties)
mais ces éléments étant issus de tables, si les occurences changeaient
demain, elles changeraient pour les deux parties par exemple sans
qu'on soit obligés d'y veiller...

Le 23 avril 2010 15:27, ribotb rib...@gmail.com a écrit :
 Oui mais il semble quand même que la phase de conception ait été sautée si
 j'en juge par les remarques de docgrainville (je n'ai toujours pas ma propre
 idée de ta base car je n'ai pas beaucoup de temps pour m'y plonger).
 Certaines de ses remarques me laissent à penser que le modèle des données
 n'est pas normalisé (pas de 1ère forme normale, semble-t-il, ni peut-être de
 2nde ou 3ème).
 Bon, je ne vais pas te faire un cours sur les formes normales de E.F. Codd,
 tu as du avoir l'occasion de les approcher quand tu travaillais sur les
 principes des bdd relationnelles.

 Bernard

 Le 23/04/2010 14:53, Marie-Pierre CORONEL a écrit :

 A docgranville : concernant l'utilisation de base en production, je te
 recommande d'aller faire un petit tour sur le forum, tu verras qu'on
 est de plus en plus nombreux sur le sujet... je réponds actuellement à
 quelqu'un qui veut mettre sur base sont cahier des variables de paye
 par exemple.

 A Bernard,
 sur la théorie c'est là que je suis la plus forte, j'ai même eu dans
 le temps mon concours de rédacteur option programmeur sur... les
 principes de la base de données relationnelle... C'est sur la mise en
 pratique que 20 ans après je pêche :D

 Le 23 avril 2010 13:08, ribotbrib...@gmail.com  a écrit :


 Bonjour Marie-Pierre, bonjour Docgrainville,

 Je suis un peu vos échanges intéressants, aussi permettez-moi d'exprimer
 mon
 point de vue sur la démarche à envisager éventuellement.

 1) Je pense qu'il ne faut pas chambouler la base actuelle, surtout si
 elle
 fonctionne de façon satisfaisante (je ne l'ai pas expertisée :-) aussi je
 me
 garderais de me prononcer sur cet aspect des choses). Le fait que OOo
 Base
 soit mono-poste n'est peut-être pas pour l'immédiat un handicap s'il y a
 une
 seule utilisatrice.
 Cette suggestion est le fruit de l'expérience :-)

 2) On peut envisager parallèlement une refonte complète de la base (une
 sorte de version 2) et sur ce point il y a deux aspects à prendre en
 compte
 :
 -  l'aspect conceptuel
 - l'aspect technique

 3) La conception :

 Il faut d'abord concevoir le modèle conceptuel des données qui consiste à
 rechercher toutes les données à gérer, leurs règles de gestion, définir
 les
 entités et les relations, ainsi que les contraintes;
 La phase suivante consiste à normaliser le modèle. Il existe un certain
 nombre de formes normales qui permettent d'avoir une base stable (elle
 peut évoluer sans bobos), intègre malgré les mises à jour sur les
 données,
 et sans redondance d'informations.
 Les tables sont la matérialisation physique des relations définies lors
 de
 la conception.

 4) L'implémentation physique :

 Il est certain que des vrais SGBDR (tels MySQL, PostgreSQL ou Firebird)
  sont préférables à OOo Base pour une utilisation professionnelle. Il
 n'en
 demeure pas moins que le modèle physique issu de la phase conception peut
 être implémenté éventuellement avec OOo Base (qui présente l'avantage de
 permettre de fabriquer assez simplement des formulaires plus ou moins
 complexes.

 Personnellement j'utilise Firebird (et aussi OOo Base, ça dépend du
 projet) comme serveur de bases de données et j'utilise IBEasy+ pour le
 développement des applications. Je cite ce logiciel car il prend en
  charge
 la phase conception (référentiel des données, manipulation des concepts
 de
 base : domaines, relations, attributs, etc., conception graphique de la
 base)

 Vous me direz que ceci est très théorique mais mon propos n'était que de
 suggérer à Marie-Pierre quelques axes de réflexion pour développer sa
 future
 éventuelle base de données :-)

 Bonne journée,
 Bernard

 Le 23/04/2010 11:29, Marie-Pierre CORONEL a écrit :


 Ah et je suis parfaitement d'accord, le point d'entrée devrait être la
 procédure. Mais le problème c'est qu'une procédure ne peut contenir
 plusieurs conflits, alors qu'un même conflit peut contenir plusieurs
 procédures...

 Le 23 avril 2010 11:28, Marie-Pierre CORONEL
 mariepierre@gmail.com    a écrit :



 En fait, ça m'évitait potentiellement d'ajouter un champ dans les
 tables secondaires qui contienne civil ou pénal (un connecteur pour
 savoir à quelle table on se branche) de manière à différencier la
 médiation civile 0 de la médiation pénale 0. Mais évidemment, moi je
 reste sur 2 procédures et toi tu défends la procédure unique :D

 De mon côté, j'ai interrogé le service informatique de la mairie,
 parce que si j'utilisais MySQL, ce n'est pas sur mon PC qu'il devrait
 être installé 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-23 Par sujet Marie-Pierre CORONEL
Par contre, il y a bien une erreur de conception que j'ai découverte
ce soir. Cette erreur est issue des modifications qui m'ont été
communiquées le 20 mars dernier alors que ma base était déjà toute
montée... Il s'agit des critères ajoutés, attachés aux informations
préalables, qui sont les mêmes que pour les médiations. Là c'est vrai,
je n'ai pas réfléchi assez longtemps.

Le 23 avril 2010 19:20, Marie-Pierre CORONEL
mariepierre@gmail.com a écrit :
 Et bien, je peux avoir fait des erreurs, mais il n'y a qu'à regarder
 le nombre de tables à attribut unique pour voir que j'ai cherché à les
 respecter.

 Après j'ai fait le choix de mettre dans une même table d'apparentes
 redondances (les mêmes éléments d'information sur les deux parties)
 mais ces éléments étant issus de tables, si les occurences changeaient
 demain, elles changeraient pour les deux parties par exemple sans
 qu'on soit obligés d'y veiller...

 Le 23 avril 2010 15:27, ribotb rib...@gmail.com a écrit :
 Oui mais il semble quand même que la phase de conception ait été sautée si
 j'en juge par les remarques de docgrainville (je n'ai toujours pas ma propre
 idée de ta base car je n'ai pas beaucoup de temps pour m'y plonger).
 Certaines de ses remarques me laissent à penser que le modèle des données
 n'est pas normalisé (pas de 1ère forme normale, semble-t-il, ni peut-être de
 2nde ou 3ème).
 Bon, je ne vais pas te faire un cours sur les formes normales de E.F. Codd,
 tu as du avoir l'occasion de les approcher quand tu travaillais sur les
 principes des bdd relationnelles.

 Bernard

 Le 23/04/2010 14:53, Marie-Pierre CORONEL a écrit :

 A docgranville : concernant l'utilisation de base en production, je te
 recommande d'aller faire un petit tour sur le forum, tu verras qu'on
 est de plus en plus nombreux sur le sujet... je réponds actuellement à
 quelqu'un qui veut mettre sur base sont cahier des variables de paye
 par exemple.

 A Bernard,
 sur la théorie c'est là que je suis la plus forte, j'ai même eu dans
 le temps mon concours de rédacteur option programmeur sur... les
 principes de la base de données relationnelle... C'est sur la mise en
 pratique que 20 ans après je pêche :D

 Le 23 avril 2010 13:08, ribotbrib...@gmail.com  a écrit :


 Bonjour Marie-Pierre, bonjour Docgrainville,

 Je suis un peu vos échanges intéressants, aussi permettez-moi d'exprimer
 mon
 point de vue sur la démarche à envisager éventuellement.

 1) Je pense qu'il ne faut pas chambouler la base actuelle, surtout si
 elle
 fonctionne de façon satisfaisante (je ne l'ai pas expertisée :-) aussi je
 me
 garderais de me prononcer sur cet aspect des choses). Le fait que OOo
 Base
 soit mono-poste n'est peut-être pas pour l'immédiat un handicap s'il y a
 une
 seule utilisatrice.
 Cette suggestion est le fruit de l'expérience :-)

 2) On peut envisager parallèlement une refonte complète de la base (une
 sorte de version 2) et sur ce point il y a deux aspects à prendre en
 compte
 :
 -  l'aspect conceptuel
 - l'aspect technique

 3) La conception :

 Il faut d'abord concevoir le modèle conceptuel des données qui consiste à
 rechercher toutes les données à gérer, leurs règles de gestion, définir
 les
 entités et les relations, ainsi que les contraintes;
 La phase suivante consiste à normaliser le modèle. Il existe un certain
 nombre de formes normales qui permettent d'avoir une base stable (elle
 peut évoluer sans bobos), intègre malgré les mises à jour sur les
 données,
 et sans redondance d'informations.
 Les tables sont la matérialisation physique des relations définies lors
 de
 la conception.

 4) L'implémentation physique :

 Il est certain que des vrais SGBDR (tels MySQL, PostgreSQL ou Firebird)
  sont préférables à OOo Base pour une utilisation professionnelle. Il
 n'en
 demeure pas moins que le modèle physique issu de la phase conception peut
 être implémenté éventuellement avec OOo Base (qui présente l'avantage de
 permettre de fabriquer assez simplement des formulaires plus ou moins
 complexes.

 Personnellement j'utilise Firebird (et aussi OOo Base, ça dépend du
 projet) comme serveur de bases de données et j'utilise IBEasy+ pour le
 développement des applications. Je cite ce logiciel car il prend en
  charge
 la phase conception (référentiel des données, manipulation des concepts
 de
 base : domaines, relations, attributs, etc., conception graphique de la
 base)

 Vous me direz que ceci est très théorique mais mon propos n'était que de
 suggérer à Marie-Pierre quelques axes de réflexion pour développer sa
 future
 éventuelle base de données :-)

 Bonne journée,
 Bernard

 Le 23/04/2010 11:29, Marie-Pierre CORONEL a écrit :


 Ah et je suis parfaitement d'accord, le point d'entrée devrait être la
 procédure. Mais le problème c'est qu'une procédure ne peut contenir
 plusieurs conflits, alors qu'un même conflit peut contenir plusieurs
 procédures...

 Le 23 avril 2010 11:28, Marie-Pierre CORONEL
 mariepierre@gmail.com    a écrit :



 En fait, ça m'évitait 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet ribotb
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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet ribotb
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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet Marie-Pierre CORONEL
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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet ribotb
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, ribotbrib...@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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet Docgranville

Le 22/04/2010 11:00, ribotb a écrit :
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).


Je dirais plutôt que c'est dans Hsqldb, le moteur de Base, non ?

Et après tout, est-ce si illogique que cela qu'une requête ne ressortant 
aucun résultat ne renvoie rien, plutôt que de renvoyer des champs null 
? (certes, le comportement n'arrange pas dans le cas de Marie-Pierre 
mais il ne s'agit que d'une situation spécifique).


A+



-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet ribotb
D'accord pour la précision : il y aurait quelque chose dans HSQLDB; 
parler de Base était un raccourci hâtif.


Par contre il me parait normal d'avoir au moins un tuple, il faut 
pouvoir récupérer la valeur (attendue et qu'on n'arrive pas à avoir pour 
l'instant ! ), je veuxdire 0. D'ailleurs mon SGBDR Firebird me rend bien 
un tuple (NULL , NULL) bien que j'aurais préféré (NULL , 0 ). Je suis en 
train d'essayer de récupérer 0  avec la condition COALESCE (IFNULL est 
inconnu dans le SQL Firebird).




Le 22/04/2010 11:15, Docgranville a écrit :

Le 22/04/2010 11:00, ribotb a écrit :
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).


Je dirais plutôt que c'est dans Hsqldb, le moteur de Base, non ?

Et après tout, est-ce si illogique que cela qu'une requête ne 
ressortant aucun résultat ne renvoie rien, plutôt que de renvoyer des 
champs null ? (certes, le comportement n'arrange pas dans le cas de 
Marie-Pierre mais il ne s'agit que d'une situation spécifique).


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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet Marie-Pierre CORONEL
Tu as peut-être ISNULL toi, qui fonctionne à peu près pareil il me
semble mais n'existe pas dans toutes les versions sql (comme ifnull).
Sinon, j'avais essayé coalesce aussi, mais ça ne changeait rien à mon
problème.

Le 22 avril 2010 11:40, ribotb rib...@gmail.com a écrit :
 D'accord pour la précision : il y aurait quelque chose dans HSQLDB; parler
 de Base était un raccourci hâtif.

 Par contre il me parait normal d'avoir au moins un tuple, il faut pouvoir
 récupérer la valeur (attendue et qu'on n'arrive pas à avoir pour l'instant !
 ), je veuxdire 0. D'ailleurs mon SGBDR Firebird me rend bien un tuple (NULL
 , NULL) bien que j'aurais préféré (NULL , 0 ). Je suis en train d'essayer de
 récupérer 0  avec la condition COALESCE (IFNULL est inconnu dans le SQL
 Firebird).



 Le 22/04/2010 11:15, Docgranville a écrit :

 Le 22/04/2010 11:00, ribotb a écrit :

 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).

 Je dirais plutôt que c'est dans Hsqldb, le moteur de Base, non ?

 Et après tout, est-ce si illogique que cela qu'une requête ne ressortant
 aucun résultat ne renvoie rien, plutôt que de renvoyer des champs null ?
 (certes, le comportement n'arrange pas dans le cas de Marie-Pierre mais il
 ne s'agit que d'une situation spécifique).

 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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet ribotb
A y regarder de près, il me semble qu'il y a une erreur dans la syntaxe 
de la requête Regime_allocations_part2_CMSA, dans la partie IFNULL. La 
syntaxe de la fonction IFNULL est : IFNULL(expression-1, expression-2).

où  expression-1 : COUNT ( Demandeurs.part2alloc)
et expression-2 : 0
et IFNULL retourne la 1ère expression nonnull
Si COUNT(...) est NULL, on veut récupérer 0
Donc il faut écrire  : IFNULL (COUNT ( Demandeurs.part2alloc) , 0)
au lieu de :  COUNT( IFNULL( Demandeurs.part2alloc, 0 ) ) comme 
écrit dans la requête.


Ceci dit, ça ne change rien pour l'instant vu que HSQL ne nous rend pas 
le tuple (NULL , NULL) qui permettrait d'appliquer la fonction IFNULL 
sur NOMBRE2.



Le 22/04/2010 11:33, Marie-Pierre CORONEL a écrit :

En fait ce qui serait normal, c'est que le résultat de COUNT étant de
type integer, le résultat soit 0 :D et que la grille soit quand même
créée avec résultat 0 puisque le champ groupe existe et pouvait en
l'occurence afficher 1. J'avais bien repéré que la grille n'était pas
créée (mon observation équivalente à tes tuples) et ça avait contribué
à me conforter dans l'idée que pour COUNT 0=null

Mais bon, au moins j'ai appris avec ce problème de résultats à créer
des vues, à utiliser ifnull et même casewhen... Je frémis à l'idée que
j'aurais pu m'appuyer sur mon premier résultat qui fonctionnait parce
que tous les champs avaient au moins une occurence, et que je découvre
en janvier prochain (le moment où on sortira ce formulaire) que les
résultats calculés sont faux...

Le 22 avril 2010 11:15, Docgranvilledocgranvi...@aol.com  a écrit :
   

Le 22/04/2010 11:00, ribotb a écrit :
 

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).
   

Je dirais plutôt que c'est dans Hsqldb, le moteur de Base, non ?

Et après tout, est-ce si illogique que cela qu'une requête ne ressortant
aucun résultat ne renvoie rien, plutôt que de renvoyer des champs null ?
(certes, le comportement n'arrange pas dans le cas de Marie-Pierre mais il
ne s'agit que d'une situation spécifique).

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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet Marie-Pierre CORONEL
j'avais essayé cette imbrication (comme pas mal d'autres d'ailleurs)
et rien ne fonctionnait pour la raison que tu évoques à la fin de ton
message.

Le 22 avril 2010 12:20, ribotb rib...@gmail.com a écrit :
 A y regarder de près, il me semble qu'il y a une erreur dans la syntaxe de
 la requête Regime_allocations_part2_CMSA, dans la partie IFNULL. La syntaxe
 de la fonction IFNULL est : IFNULL(expression-1, expression-2).
 où  expression-1 : COUNT ( Demandeurs.part2alloc)
 et expression-2 : 0
 et IFNULL retourne la 1ère expression nonnull
 Si COUNT(...) est NULL, on veut récupérer 0
 Donc il faut écrire  : IFNULL (COUNT ( Demandeurs.part2alloc) , 0)
 au lieu de :  COUNT( IFNULL( Demandeurs.part2alloc, 0 ) ) comme écrit
 dans la requête.

 Ceci dit, ça ne change rien pour l'instant vu que HSQL ne nous rend pas le
 tuple (NULL , NULL) qui permettrait d'appliquer la fonction IFNULL sur
 NOMBRE2.


 Le 22/04/2010 11:33, Marie-Pierre CORONEL a écrit :

 En fait ce qui serait normal, c'est que le résultat de COUNT étant de
 type integer, le résultat soit 0 :D et que la grille soit quand même
 créée avec résultat 0 puisque le champ groupe existe et pouvait en
 l'occurence afficher 1. J'avais bien repéré que la grille n'était pas
 créée (mon observation équivalente à tes tuples) et ça avait contribué
 à me conforter dans l'idée que pour COUNT 0=null

 Mais bon, au moins j'ai appris avec ce problème de résultats à créer
 des vues, à utiliser ifnull et même casewhen... Je frémis à l'idée que
 j'aurais pu m'appuyer sur mon premier résultat qui fonctionnait parce
 que tous les champs avaient au moins une occurence, et que je découvre
 en janvier prochain (le moment où on sortira ce formulaire) que les
 résultats calculés sont faux...

 Le 22 avril 2010 11:15, Docgranvilledocgranvi...@aol.com  a écrit :


 Le 22/04/2010 11:00, ribotb a écrit :


 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).


 Je dirais plutôt que c'est dans Hsqldb, le moteur de Base, non ?

 Et après tout, est-ce si illogique que cela qu'une requête ne ressortant
 aucun résultat ne renvoie rien, plutôt que de renvoyer des champs null
 ?
 (certes, le comportement n'arrange pas dans le cas de Marie-Pierre mais
 il
 ne s'agit que d'une situation spécifique).

 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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet Marie-Pierre CORONEL
bon ben là j'ai un gros problème en prime... j'essaye de créer le
second formulaire et OOo n'arrête pas de se fermer maintenant...

Le 22 avril 2010 13:08, Marie-Pierre CORONEL
mariepierre@gmail.com a écrit :
 j'avais essayé cette imbrication (comme pas mal d'autres d'ailleurs)
 et rien ne fonctionnait pour la raison que tu évoques à la fin de ton
 message.

 Le 22 avril 2010 12:20, ribotb rib...@gmail.com a écrit :
 A y regarder de près, il me semble qu'il y a une erreur dans la syntaxe de
 la requête Regime_allocations_part2_CMSA, dans la partie IFNULL. La syntaxe
 de la fonction IFNULL est : IFNULL(expression-1, expression-2).
 où  expression-1 : COUNT ( Demandeurs.part2alloc)
 et expression-2 : 0
 et IFNULL retourne la 1ère expression nonnull
 Si COUNT(...) est NULL, on veut récupérer 0
 Donc il faut écrire  : IFNULL (COUNT ( Demandeurs.part2alloc) , 0)
 au lieu de :  COUNT( IFNULL( Demandeurs.part2alloc, 0 ) ) comme écrit
 dans la requête.

 Ceci dit, ça ne change rien pour l'instant vu que HSQL ne nous rend pas le
 tuple (NULL , NULL) qui permettrait d'appliquer la fonction IFNULL sur
 NOMBRE2.


 Le 22/04/2010 11:33, Marie-Pierre CORONEL a écrit :

 En fait ce qui serait normal, c'est que le résultat de COUNT étant de
 type integer, le résultat soit 0 :D et que la grille soit quand même
 créée avec résultat 0 puisque le champ groupe existe et pouvait en
 l'occurence afficher 1. J'avais bien repéré que la grille n'était pas
 créée (mon observation équivalente à tes tuples) et ça avait contribué
 à me conforter dans l'idée que pour COUNT 0=null

 Mais bon, au moins j'ai appris avec ce problème de résultats à créer
 des vues, à utiliser ifnull et même casewhen... Je frémis à l'idée que
 j'aurais pu m'appuyer sur mon premier résultat qui fonctionnait parce
 que tous les champs avaient au moins une occurence, et que je découvre
 en janvier prochain (le moment où on sortira ce formulaire) que les
 résultats calculés sont faux...

 Le 22 avril 2010 11:15, Docgranvilledocgranvi...@aol.com  a écrit :


 Le 22/04/2010 11:00, ribotb a écrit :


 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).


 Je dirais plutôt que c'est dans Hsqldb, le moteur de Base, non ?

 Et après tout, est-ce si illogique que cela qu'une requête ne ressortant
 aucun résultat ne renvoie rien, plutôt que de renvoyer des champs null
 ?
 (certes, le comportement n'arrange pas dans le cas de Marie-Pierre mais
 il
 ne s'agit que d'une situation spécifique).

 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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet ribotb
Il me fait ça quelquefois au bout d'un moment et j'ai mis ça sur le 
compte d'un manque de RAM de mon PC. Je reboote et tout rentre dans l'ordre.


Bon après-midi,
Bernard

Le 22/04/2010 14:09, Marie-Pierre CORONEL a écrit :

bon ben là j'ai un gros problème en prime... j'essaye de créer le
second formulaire et OOo n'arrête pas de se fermer maintenant...

Le 22 avril 2010 13:08, Marie-Pierre CORONEL
mariepierre@gmail.com  a écrit :
   

j'avais essayé cette imbrication (comme pas mal d'autres d'ailleurs)
et rien ne fonctionnait pour la raison que tu évoques à la fin de ton
message.

Le 22 avril 2010 12:20, ribotbrib...@gmail.com  a écrit :
 

A y regarder de près, il me semble qu'il y a une erreur dans la syntaxe de
la requête Regime_allocations_part2_CMSA, dans la partie IFNULL. La syntaxe
de la fonction IFNULL est : IFNULL(expression-1, expression-2).
où  expression-1 : COUNT ( Demandeurs.part2alloc)
et expression-2 : 0
et IFNULL retourne la 1ère expression nonnull
Si COUNT(...) est NULL, on veut récupérer 0
Donc il faut écrire  : IFNULL (COUNT ( Demandeurs.part2alloc) , 0)
au lieu de :  COUNT( IFNULL( Demandeurs.part2alloc, 0 ) ) comme écrit
dans la requête.

Ceci dit, ça ne change rien pour l'instant vu que HSQL ne nous rend pas le
tuple (NULL , NULL) qui permettrait d'appliquer la fonction IFNULL sur
NOMBRE2.


Le 22/04/2010 11:33, Marie-Pierre CORONEL a écrit :
   

En fait ce qui serait normal, c'est que le résultat de COUNT étant de
type integer, le résultat soit 0 :D et que la grille soit quand même
créée avec résultat 0 puisque le champ groupe existe et pouvait en
l'occurence afficher 1. J'avais bien repéré que la grille n'était pas
créée (mon observation équivalente à tes tuples) et ça avait contribué
à me conforter dans l'idée que pour COUNT 0=null

Mais bon, au moins j'ai appris avec ce problème de résultats à créer
des vues, à utiliser ifnull et même casewhen... Je frémis à l'idée que
j'aurais pu m'appuyer sur mon premier résultat qui fonctionnait parce
que tous les champs avaient au moins une occurence, et que je découvre
en janvier prochain (le moment où on sortira ce formulaire) que les
résultats calculés sont faux...

Le 22 avril 2010 11:15, Docgranvilledocgranvi...@aol.coma écrit :

 

Le 22/04/2010 11:00, ribotb a écrit :

   

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).

 

Je dirais plutôt que c'est dans Hsqldb, le moteur de Base, non ?

Et après tout, est-ce si illogique que cela qu'une requête ne ressortant
aucun résultat ne renvoie rien, plutôt que de renvoyer des champs null
?
(certes, le comportement n'arrange pas dans le cas de Marie-Pierre mais
il
ne s'agit que d'une situation spécifique).

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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet Jean Michel PIERRE

Marie-Pierre CORONEL a écrit :

bon ben là j'ai un gros problème en prime... j'essaye de créer le
second formulaire et OOo n'arrête pas de se fermer maintenant...
Les modifications fréquentes peuvent augmenter artificiellement le poids 
de la base, et dans ces cas là il est conseillé, en mode SQL directe de 
la compacter comme décrit ici :

http://user.services.openoffice.org/fr/forum/viewtopic.php?f=9t=1543p=106759hilit=defrag#p106759

et là le résultat :
http://user.services.openoffice.org/fr/forum/viewtopic.php?f=9t=22184p=120335hilit=defrag#p120335

J.M





-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet Marie-Pierre CORONEL
je crois que ce sont les champs alloc qui se vengent de toutes les
tortures que je leur fait subir depuis 2 jours, parce que le logiciel
a cessé de se fermer quand je suis passée au sous-formulaire suivant
qui ne les contient pas -_- les champs ont-ils une âme ? :D

bon, mais je vais suivre les liens là oui, ça peut toujours remettre
quelques trucs en ordre. Merci :)

Le 22 avril 2010 14:53, Jean Michel PIERRE jmpni...@orange.fr a écrit :
 Marie-Pierre CORONEL a écrit :

 bon ben là j'ai un gros problème en prime... j'essaye de créer le
 second formulaire et OOo n'arrête pas de se fermer maintenant...

 Les modifications fréquentes peuvent augmenter artificiellement le poids de
 la base, et dans ces cas là il est conseillé, en mode SQL directe de la
 compacter comme décrit ici :
 http://user.services.openoffice.org/fr/forum/viewtopic.php?f=9t=1543p=106759hilit=defrag#p106759

 et là le résultat :
 http://user.services.openoffice.org/fr/forum/viewtopic.php?f=9t=22184p=120335hilit=defrag#p120335

 J.M





 -
 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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet Docgranville

Le 21/04/2010 19:11, Marie-Pierre CORONEL a écrit :

re bonjour,

non non, je ne tiens pas à traiter les 3 régimes différemment, j'avais
essayé d'obtenir les calculs sur les 3 d'un coup mais je n'obtenais
jamais un chiffre juste -_- La seule fois où j'ai enfin obtenu un
chiffre juste c'est avec le système des 3 requêtes sauf quand j'ai
testé avec 0 occurence. Là je suis rentrée chez moi, mais je
regarderai tes requêtes demain.

Je veux bien qu'on discute de la rigidité de ma base, parce que j'ai
essayé de faire le plus pérenne possible et donc le contraire :'( mais
bon...

a+
   

Re-Bonjour Marie-Pierre,

Bon, vu que tu as l'air d'avoir beaucoup bossé sur ce truc et que la 
pérennité de la base (ainsi que sa fonctionnalité) est une composante 
essentielle, je crois utile, avant que tu ne continues à travailler sur 
tes requêtes de te proposer une petite pause réflexion sur la structure 
de ta base elle-même.


Tout d'abord sur un plan général, je ne sais pas s'il est véritablement 
conseillé d'utiliser Base en production ; c'est un module de OOo qui 
comporte encore beaucoup d'imperfections et il me semble avoir lu en 
plusieurs endroits (y compris sur ces liste, y compris par des membres 
du projet) qu'il n'était pas trop conseillé d'utiliser ce module dans un 
cadre professionnel ; je ne sais pas si une telle solution éliminerait 
tout ou partie des risques (en vertu desquels la prudence est souvent 
recommandée à l'égard de Base) mais, pour rester dans le libre, 
peut-être pourrais-tu créer cette base avec Mysql et t'y connecter avec 
Base (tes formulaires fonctionneront et tu pourras créer des requêtes 
sans aucune difficulté, mais en revanche, je pense que tu ne pourras pas 
apporter de modifications à la structure de tes tables avec Base, et à 
chaque fois que tu voudras le faire, il te faudra passer par Mysql) ; 
qui plus est, Hsqldb ne gère pas les bases multi-utilisateurs et ça peut 
avoir une influence sur l'utilisation de ta base de données.


En ce qui concerne ta base elle-même, j'ai compris qu'elle allait servir 
à gérer le suivi d'un service de médiation, certaines étant civiles, 
d'autres étant pénales.


La première question que je me pose, c'est pourquoi enregistrer dans 
deux tables différentes, les médiations civiles et les médiations 
pénales ? Ça t'oblige ensuite à dupliquer plein de tables comme, par 
exemple, les tables Aide mémoire alors qu'elles ont la même structure 
; mieux encore, les tables relatives aux liens entre les parties, qui 
regroupent le même type d'informations (même si je suis conscient que 
certains types de liens ne seront utiles -ou ne devront être 
utilisables- que dans tel type de médiation et pas dans l'autre).


C'est en cela que je pense que ta base est un peu trop rigide.

En y réfléchissant comme ça, au débotté, je me dis que les 
caractéristiques sont les suivantes : le service concerné est saisi 
d'une médiation ; il s'agit d'une procédure qui peut disposer de deux 
natures différentes, provenir de plusieurs sources et devra faire 
l'objet d'un suivi ; elle concerne, généralement deux ou plusieurs 
personnes.


Du coup, je serais tenté de me dire que j'ai besoin de trois tables 
initiales :
- une table regroupant toutes les médiations dont le service a été saisi 
et contenant leurs caractéristiques (origine, nature,...)
- une table regroupant les personnes concernées avec tous les 
renseignements les concernant ;
- une table regroupant les informations relatives au suivi (les 
évènements se déroulant dans le cadre de la médiation).


Ces trois tables là vont être les tables principales de ma base puisque 
ce sont elles qui vont évoluer tous les jours.


Viennent ensuite les tables que je qualifierais de secondaires ou de 
utilitaires ; en fait, ce sont les tables dans lesquelles seront 
stockées des données récurrentes (les liens entre les parties par 
exemple, le mode de connaissance, les modalités de saisine du service, 
les suites réservées,...).


Ensuite, tu peux faire des requêtes (avec leurs vues et leurs 
formulaires associés) pour obtenir un regard limité à telle ou telle 
portion de ta base (un formulaire uniquement dédié à la consultation et 
ne regroupant que les médiations civiles et un autre pour les pénales).


L'une des choses qui me gênent un peu dans ta base, telle qu'elle est 
actuellement conçue, c'est que, par exemple, pour les demandeurs, la 
partie 1 et la partie 2 figurent dans le même enregistrement mais que 
l'on renseigne exactement les mêmes informations pour chacune des 
parties ; pour ma part, j'aurais tendance à faire figurer dans cette 
table qu'un seul champ nom, un seul champ prénom, etc... ; la clef 
primaire servirait alors, dans la table relatives aux médiations de clef 
externe, permettant d'identifier le statut de partie 1 ou de partie 2 de 
chaque personne ; et que fais-tu si un jour tu as une médiation avec 3 
parties ?


Pour résumer je séparerais d'un côté les procédures (et leurs 
caractéristiques) et de 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet ribotb
Il y a aussi SHUTDOWN COMPACT qui réduit les fichiers à leur taille 
minimum avant de fermer la base (Outils  SQL).


Bernard

Le 22/04/2010 14:53, Jean Michel PIERRE a écrit :

Marie-Pierre CORONEL a écrit :

bon ben là j'ai un gros problème en prime... j'essaye de créer le
second formulaire et OOo n'arrête pas de se fermer maintenant...
Les modifications fréquentes peuvent augmenter artificiellement le 
poids de la base, et dans ces cas là il est conseillé, en mode SQL 
directe de la compacter comme décrit ici :
http://user.services.openoffice.org/fr/forum/viewtopic.php?f=9t=1543p=106759hilit=defrag#p106759 



et là le résultat :
http://user.services.openoffice.org/fr/forum/viewtopic.php?f=9t=22184p=120335hilit=defrag#p120335 



J.M





-
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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet Marie-Pierre CORONEL
re :)

bon alors, ma réponse risque d'être tout aussi longue :D je vais
commencer par te présenter mon contexte, ça t'apportera déjà quelques
réponses je pense.

- Ma structure : une petite structure qui n'a pas les moyens d'avoir
un développeur, qui dépend de la mairie pour l'informatique, laquelle
n'a qu'un développeur qui par ailleurs est le chef du service et donc
n'a aucun temps à nous consacrer. Peu d'argent aussi, d'autant que
travaillant dans le social, tout ce qu'on consacre à autre chose que
du social nous fend le coeur.

- Des services en difficulté, de plus en plus de stats demandées, de
moins en moins de personnel, même si les dossiers ne sont pas très
nombreux (pour la médiation c'est à peu près 200 par an) les collègues
ont toujours plus de mal à les produire (pour le service de médiation,
demandées début janvier on les aura enfin fin mars, après plusieurs
aller-retour liés aux insuffisances de la production, des statistiques
bâclées et non contrôlées où les incohérences sautent au visage,
simplement parce que la collègue a le plus grand mal à les intégrer
dans son plan de charge)

- Moi ex-programmeur de gestion, qui n'a pas vu une ligne de programme
depuis 15 ans, n'a pas entretenu la moindre connaissance sur le sujet,
la page était tournée, responsable des finances, puis responsable du
personnel maintenant chargée de mission auprès de la direction,
théoriquement affectée à l'élaboration de projet, je me sentais
tellement concernée par base que je ne me suis même pas inscrite à la
formation de migration... Alors, tu me dis que je devrais travailler
sur Mysql par l'intermédiaire d'OOo, tu as sûrement raison, le truc
c'est que je ne sais même pas comment on fait... Aujourd'hui, je suis
clairement non-programmeur, la base doit fonctionner sans recours aux
macros et surtout, je n'ai pas vocation à l'entretenir, c'est pour ça
que je disais avoir cherché à la faire la plus pérenne possible
(notamment, j'ai préféré les tables utilitaires aux listes de
valeur, même quand il n'y avait que 2 ou 3 valeurs, sauf pour monsieur
et madame)
J'ai lu en effet comme toi l'avertissement notamment de Sophie sur le
fait que Base était orienté mono utilisateur et que Sun (à l'époque)
ne s'engageait pas sur autre chose, qu'il était donc déconseillé de
l'utiliser en production. Mais avons-nous vraiment le choix quand nous
sommes une petite structure sans informaticien et relativement peu de
moyens ? Au passage, la base que je monte ne sera rien d'autre que
mono-utilisateur, nous n'avons qu'une médiatrice et à mi-temps
seulement (sauf pendant la période où on la partagera pour les
éventuelles modifications à réaliser si mes tests n'ont pas été
suffisants et j'ai déjà prévu qu'on s'entendrait sur les jours de la
semaine).

- Les partenaires de la médiation : il fut un temps (heureux) où il
n'y avait que la justice qui ne demandait pas grand chose et le CCAS
qui en demandait nettement plus. Mais en 2009 arrivée de la CAF, qui
tâtonne, veut des infos puisque maintenant pour la médiation civile
c'est surtout elle qui paye, décide par exemple qu'il faut 3 natures
juridiques pour les entretiens d'info et deux seulement pour les
médiations (les deux dernières pour les infos étant regroupées dans la
dernière pour les médiations), nous crée en mars 2010 des infos
collectives dont il n'avait jamais été question jusque là, mais qu'on
devra dénombrer pour l'activité 2010. Mais même la justice n'est pas
totalement d'accord avec elle-même selon qu'on a à faire au Procureur
(médiations pénales) ou au Greffe du TGI, on ne nous demande pas tout
à fait les mêmes renseignements (même si tu as eu le sentiment du
contraire, il y a une ou deux variantes qui m'ont en effet obligée à
démultiplier le nombre de tables). Là-dessus tu ajoutes les demandes
CCAS qui sont parfois sur les mêmes domaines mais classifient
différemment, et la vision du médiateur de sa propre activité... et ça
donne ce que j'ai monté (notamment sur les résultats, j'ai composé
avec les demandes des uns et des autres) :D

- Sur la base elle-même :
* En fait la table demandeurs est mal nommée. Je m'en suis rendu
compte un peu tard, j'ai hésité à la renommer, (mais j'aurais eu
tellement à reprendre...), elle devrait s'appeler conflit ou
parties au conflit (parce que médiation est déjà pris par une autre
table). Il faut concevoir que notre médiatrice ne connaît les
individus qu'à travers leur conflit. Ma collègue, si elle a besoin de
trouver des renseignements sur quelqu'un actuellement va chercher dans
la chemise de la médiation correspondante, elle n'a pas une fiche par
personne. Les individus ne sont pas repérés, ce sont les médiations
qui le sont. J'ai pensé à la table que tu proposes, c'est comme ça que
cette table se retrouve mal nommée, mais ça n'est pas adéquat. Il lui
faudrait attribuer un n° à un individu qui ne peut en tout état de
cause pas être convoqué seul par exemple. Jamais elle n'appellera une
fiche qui ne concerne que l'une des deux parties (enfin... 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-22 Par sujet Marie-Pierre CORONEL
bah avec Defrag ma base a maigri de 6 ko :D alors je ne pense pas
utiliser ta commande, mais merci pour l'info :)

Le 22 avril 2010 20:10, ribotb rib...@gmail.com a écrit :
 Il y a aussi SHUTDOWN COMPACT qui réduit les fichiers à leur taille minimum
 avant de fermer la base (Outils  SQL).

 Bernard

 Le 22/04/2010 14:53, Jean Michel PIERRE a écrit :

 Marie-Pierre CORONEL a écrit :

 bon ben là j'ai un gros problème en prime... j'essaye de créer le
 second formulaire et OOo n'arrête pas de se fermer maintenant...

 Les modifications fréquentes peuvent augmenter artificiellement le poids
 de la base, et dans ces cas là il est conseillé, en mode SQL directe de la
 compacter comme décrit ici :

 http://user.services.openoffice.org/fr/forum/viewtopic.php?f=9t=1543p=106759hilit=defrag#p106759

 et là le résultat :

 http://user.services.openoffice.org/fr/forum/viewtopic.php?f=9t=22184p=120335hilit=defrag#p120335

 J.M





 -
 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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet Docgranville

Le 21/04/2010 15:38, Marie-Pierre CORONEL a écrit :

Bonjour,

j'ai déjà mis un message sur le forum à ce sujet, mais comme je crois
qu'il y a ici des gens qui ne vont pas sur le forum, peut-être
passera-t-il quelqu'un qui ait une réponse pour moi...

j'essaie d'additionner dans une requête deux champs issus de deux
autres requêtes calculés avec COUNT. Mes 3 requêtes ensemble
fonctionnent très bien dès lors que le résultat des COUNT est au moins
égal à 1. COUNT apparemment ne connaît pas 0. J'ai donc cru que le
résultat de COUNT était null mais... il semble que non.

J'ai essayé IFNULL, COALESCE, CASEWHEN (qui n'accepte pas expression
is null, pas réussi à faire une syntaxe qui fonctionne avec CASE
WHEN), d'utiliser des vues à partir de mes 2 requêtes, rien ne
fonctionne.

Le résultat de COUNT quand il n'y a pas d'occurence c'est rien ? Donc
l'opération que je cherche à faire serait infaisable ?

Merci d'avance.
   

Bonjour Marie-Pierre,

J'ai un peu de mal à suivre ta démarche, à la lecture de ta description 
; te serait-il possible de donner un lien vers ta base (si elle n'est 
pas confidentielle bien sûr) ?


On est bien d'accord que les résultats de tes 2 premières requêtes sont 
stockés dans une vue pour que tu puisse les utiliser dans la 3ème ?


A+



-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet Marie-Pierre CORONEL
Alors, voilà ma base qui n'est pas encore confidentielle, les exemples
qu'elle comporte sont bidons.
http://www.cijoint.fr/cjlink.php?file=cj201004/cijtWcP6UI.odb

comme tu vas le voir il y a déjà beaucoup de requêtes
tu peux voir les requêtes initiales (qui fonctionnent quand les 2
champs comportent au moins une occurence avec les requêtes :
Regime_allocations_partie1_CAF, Regime_allocations_part2_CAF et
Regime_allocations_total_CAF
elles n'utilisent pas de vue.

tous mes tests ont été faits sur les mêmes mais CMSA (qui ne sont
peut-être plus dans un état très uniforme d'ailleurs maintenant...) et
ensuite avec les 2 vues que tu peux trouver sous les noms
regimeCMSApart1 et regimeCMSApart2 sauf pour coalesce.

si pour compléter ton idée tu as besoin de savoir à quoi elles
servent, tu peux regarder dans le formulaire 9-pour remplir le
formulaire d'activité type 2010, ce sont les 4 derniers items de la
colonne de gauche.

j'espère n'avoir rien oublié :)

Le 21 avril 2010 16:08, Docgranville docgranvi...@aol.com a écrit :
 Le 21/04/2010 15:38, Marie-Pierre CORONEL a écrit :

 Bonjour,

 j'ai déjà mis un message sur le forum à ce sujet, mais comme je crois
 qu'il y a ici des gens qui ne vont pas sur le forum, peut-être
 passera-t-il quelqu'un qui ait une réponse pour moi...

 j'essaie d'additionner dans une requête deux champs issus de deux
 autres requêtes calculés avec COUNT. Mes 3 requêtes ensemble
 fonctionnent très bien dès lors que le résultat des COUNT est au moins
 égal à 1. COUNT apparemment ne connaît pas 0. J'ai donc cru que le
 résultat de COUNT était null mais... il semble que non.

 J'ai essayé IFNULL, COALESCE, CASEWHEN (qui n'accepte pas expression
 is null, pas réussi à faire une syntaxe qui fonctionne avec CASE
 WHEN), d'utiliser des vues à partir de mes 2 requêtes, rien ne
 fonctionne.

 Le résultat de COUNT quand il n'y a pas d'occurence c'est rien ? Donc
 l'opération que je cherche à faire serait infaisable ?

 Merci d'avance.


 Bonjour Marie-Pierre,

 J'ai un peu de mal à suivre ta démarche, à la lecture de ta description ; te
 serait-il possible de donner un lien vers ta base (si elle n'est pas
 confidentielle bien sûr) ?

 On est bien d'accord que les résultats de tes 2 premières requêtes sont
 stockés dans une vue pour que tu puisse les utiliser dans la 3ème ?

 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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet Marie-Pierre CORONEL
hum j'ai voulu faire du ménage dans ci-joint... et j'ai supprimé le
mauvais fichier...

nouveau lien http://www.cijoint.fr/cjlink.php?file=cj201004/cijMs7dYvM.odb

Le 21 avril 2010 17:12, Marie-Pierre CORONEL
mariepierre@gmail.com a écrit :
 Alors, voilà ma base qui n'est pas encore confidentielle, les exemples
 qu'elle comporte sont bidons.
 http://www.cijoint.fr/cjlink.php?file=cj201004/cijtWcP6UI.odb

 comme tu vas le voir il y a déjà beaucoup de requêtes
 tu peux voir les requêtes initiales (qui fonctionnent quand les 2
 champs comportent au moins une occurence avec les requêtes :
 Regime_allocations_partie1_CAF, Regime_allocations_part2_CAF et
 Regime_allocations_total_CAF
 elles n'utilisent pas de vue.

 tous mes tests ont été faits sur les mêmes mais CMSA (qui ne sont
 peut-être plus dans un état très uniforme d'ailleurs maintenant...) et
 ensuite avec les 2 vues que tu peux trouver sous les noms
 regimeCMSApart1 et regimeCMSApart2 sauf pour coalesce.

 si pour compléter ton idée tu as besoin de savoir à quoi elles
 servent, tu peux regarder dans le formulaire 9-pour remplir le
 formulaire d'activité type 2010, ce sont les 4 derniers items de la
 colonne de gauche.

 j'espère n'avoir rien oublié :)

 Le 21 avril 2010 16:08, Docgranville docgranvi...@aol.com a écrit :
 Le 21/04/2010 15:38, Marie-Pierre CORONEL a écrit :

 Bonjour,

 j'ai déjà mis un message sur le forum à ce sujet, mais comme je crois
 qu'il y a ici des gens qui ne vont pas sur le forum, peut-être
 passera-t-il quelqu'un qui ait une réponse pour moi...

 j'essaie d'additionner dans une requête deux champs issus de deux
 autres requêtes calculés avec COUNT. Mes 3 requêtes ensemble
 fonctionnent très bien dès lors que le résultat des COUNT est au moins
 égal à 1. COUNT apparemment ne connaît pas 0. J'ai donc cru que le
 résultat de COUNT était null mais... il semble que non.

 J'ai essayé IFNULL, COALESCE, CASEWHEN (qui n'accepte pas expression
 is null, pas réussi à faire une syntaxe qui fonctionne avec CASE
 WHEN), d'utiliser des vues à partir de mes 2 requêtes, rien ne
 fonctionne.

 Le résultat de COUNT quand il n'y a pas d'occurence c'est rien ? Donc
 l'opération que je cherche à faire serait infaisable ?

 Merci d'avance.


 Bonjour Marie-Pierre,

 J'ai un peu de mal à suivre ta démarche, à la lecture de ta description ; te
 serait-il possible de donner un lien vers ta base (si elle n'est pas
 confidentielle bien sûr) ?

 On est bien d'accord que les résultats de tes 2 premières requêtes sont
 stockés dans une vue pour que tu puisse les utiliser dans la 3ème ?

 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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet Docgranville

Le 21/04/2010 18:04, Marie-Pierre CORONEL a écrit :

hum j'ai voulu faire du ménage dans ci-joint... et j'ai supprimé le
mauvais fichier...

nouveau lien http://www.cijoint.fr/cjlink.php?file=cj201004/cijMs7dYvM.odb

   

Re-bonjour Marie-Pierre,

J'ai jeté un coup d'oeil rapide sur ta base ; peut-être aurais-je (à 
l'occasion) quelques réflexions à te faire partager sur sa conception 
qui me semble un peu trop complexe (ou rigide si tu préfères).


En ce qui concerne ton problème particulier, je n'en connais pas 
véritablement la solution mais je pense (c'est déjà quelque chose) en 
connaître l'origine ; en réalité, je pense que le souci vient du fait 
que ta requête porte sur une table vide ( plus précisément sur une vue 
vide, celle générée par la Regime_allocations_part2_CMSA) ; la clause 
ifnull permet de sauter un champ null dans un enregistrement mais, en 
l'occurrence, il n'y a carrément pas d'enregistrement (puisqu'aucun 
enregistrement de la table demandeurs ne correspond aux critères fixés 
dans cette fameuse requête Regime_allocations_part2_CMSA.


Pour éviter ça, je me suis dit que, peut-être, tu pourrais faire une 
requête (et éventuellement une vue) synthétisant, sur la période 
requise, le nombre d'allocataires de type part1 pour chaque code 
d'allocation ; ta requête Regime_allocation_partie1_CMSA deviendrait :
SELECT COUNT( Demandeurs.part1alloc ) AS nombre1, 
Demandeurs.part1alloc FROM Mediations_toutes_Selection_periode, 
Demandeurs WHERE Mediations_toutes_Selection_periode.demandeurs = 
Demandeurs.no_demandeurs GROUP BY Demandeurs.part1alloc

(en fait, je n'ai supprimé que la clause HAVING)

Si on fait la même chose sur ta requête Regime_allocation_partie2_CMSA, 
elle devient :
SELECT Demandeurs.part2alloc, COUNT( IFNULL( 
Demandeurs.part2alloc, 0 ) ) AS nombre2 FROM 
Mediations_toutes_Selection_periode, Demandeurs WHERE 
Mediations_toutes_Selection_periode.demandeurs = 
Demandeurs.no_demandeurs GROUP BY Demandeurs.part2alloc

(ici aussi, donc, siplement suppression de la clause HAVING).

Avec ces requêtes, on obtient un tableau regroupant, pour chaque code 
d'allocation, le nombre d'allocataires sur la période.


La dernière requête est modifiée un peu plus en profondeur ; il s'agit 
de la requête Regime_allocations_CMSA_Total, qui devient :
SELECT regimeCMSApart1.part1alloc, ifnull(nombre1,0) as nombre1, 
ifnull(nombre2,0) as nombre2, ifnull(regimeCMSApart1.nombre1,0) 
+ ifnull(regimeCMSApart2.nombre2,0) AS Total FROM 
regimeCMSApart1 left join regimeCMSApart2 on 
regimeCMSApart1.part1alloc = regimeCMSApart2.part2alloc
(attention, cette requête porte sur les vues ; il ne faut donc pas 
oublier de les modifier, sinon, elle sont toujours avec la clause HAVING)


Tu obtiens avec ça un tableau comportant une colonne énonçant les 
différents types d'allocations rencontrés (ici, 0, 1 et 2), une colonne 
mentionnant le nombre d'allocataires partie 1 bénéficiant de ce type 
d'allocation (ou 0 s'il n'y en a pas mais en l'occurrence, ce n'est pas 
possible), un colonne mentionnant le nombre d'allocataires partie 2 
bénéficiant de ce type d'allocation (ou 0, et ici c'est possible) et 
enfin une colonne totalisant les deux chiffres précédents.


Je pense que, dans l'esprit, ça ressemble à ce que tu veux ; ensuite, si 
tu veux avoir une requête avec uniquement tel ou tel type d'allocation, 
tu peux parfaitement pointer sur cette dernière requête et en extraire 
nombre1 et noùmbre2 qui seront toujours renseignés (puisque le 
ifnull est utilisé pour créer cette requête).


On pourra en re-discuter un peu plus tard si tu veux.

A+



-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet Marie-Pierre CORONEL
re bonjour,

non non, je ne tiens pas à traiter les 3 régimes différemment, j'avais
essayé d'obtenir les calculs sur les 3 d'un coup mais je n'obtenais
jamais un chiffre juste -_- La seule fois où j'ai enfin obtenu un
chiffre juste c'est avec le système des 3 requêtes sauf quand j'ai
testé avec 0 occurence. Là je suis rentrée chez moi, mais je
regarderai tes requêtes demain.

Je veux bien qu'on discute de la rigidité de ma base, parce que j'ai
essayé de faire le plus pérenne possible et donc le contraire :'( mais
bon...

a+

Le 21 avril 2010 19:04, Docgranville docgranvi...@aol.com a écrit :
 Le 21/04/2010 18:04, Marie-Pierre CORONEL a écrit :

 hum j'ai voulu faire du ménage dans ci-joint... et j'ai supprimé le
 mauvais fichier...

 nouveau lien http://www.cijoint.fr/cjlink.php?file=cj201004/cijMs7dYvM.odb



 Re-bonjour Marie-Pierre,

 J'ai jeté un coup d'oeil rapide sur ta base ; peut-être aurais-je (à
 l'occasion) quelques réflexions à te faire partager sur sa conception qui me
 semble un peu trop complexe (ou rigide si tu préfères).

 En ce qui concerne ton problème particulier, je n'en connais pas
 véritablement la solution mais je pense (c'est déjà quelque chose) en
 connaître l'origine ; en réalité, je pense que le souci vient du fait que ta
 requête porte sur une table vide ( plus précisément sur une vue vide, celle
 générée par la Regime_allocations_part2_CMSA) ; la clause ifnull permet de
 sauter un champ null dans un enregistrement mais, en l'occurrence, il n'y
 a carrément pas d'enregistrement (puisqu'aucun enregistrement de la table
 demandeurs ne correspond aux critères fixés dans cette fameuse requête
 Regime_allocations_part2_CMSA.

 Pour éviter ça, je me suis dit que, peut-être, tu pourrais faire une requête
 (et éventuellement une vue) synthétisant, sur la période requise, le nombre
 d'allocataires de type part1 pour chaque code d'allocation ; ta requête
 Regime_allocation_partie1_CMSA deviendrait :
 SELECT COUNT( Demandeurs.part1alloc ) AS nombre1,
 Demandeurs.part1alloc FROM Mediations_toutes_Selection_periode,
 Demandeurs WHERE Mediations_toutes_Selection_periode.demandeurs =
 Demandeurs.no_demandeurs GROUP BY Demandeurs.part1alloc
 (en fait, je n'ai supprimé que la clause HAVING)

 Si on fait la même chose sur ta requête Regime_allocation_partie2_CMSA, elle
 devient :
 SELECT Demandeurs.part2alloc, COUNT( IFNULL( Demandeurs.part2alloc,
 0 ) ) AS nombre2 FROM Mediations_toutes_Selection_periode, Demandeurs
 WHERE Mediations_toutes_Selection_periode.demandeurs =
 Demandeurs.no_demandeurs GROUP BY Demandeurs.part2alloc
 (ici aussi, donc, siplement suppression de la clause HAVING).

 Avec ces requêtes, on obtient un tableau regroupant, pour chaque code
 d'allocation, le nombre d'allocataires sur la période.

 La dernière requête est modifiée un peu plus en profondeur ; il s'agit de la
 requête Regime_allocations_CMSA_Total, qui devient :
 SELECT regimeCMSApart1.part1alloc, ifnull(nombre1,0) as nombre1,
 ifnull(nombre2,0) as nombre2, ifnull(regimeCMSApart1.nombre1,0) +
 ifnull(regimeCMSApart2.nombre2,0) AS Total FROM regimeCMSApart1 left
 join regimeCMSApart2 on regimeCMSApart1.part1alloc =
 regimeCMSApart2.part2alloc
 (attention, cette requête porte sur les vues ; il ne faut donc pas oublier
 de les modifier, sinon, elle sont toujours avec la clause HAVING)

 Tu obtiens avec ça un tableau comportant une colonne énonçant les différents
 types d'allocations rencontrés (ici, 0, 1 et 2), une colonne mentionnant le
 nombre d'allocataires partie 1 bénéficiant de ce type d'allocation (ou 0
 s'il n'y en a pas mais en l'occurrence, ce n'est pas possible), un colonne
 mentionnant le nombre d'allocataires partie 2 bénéficiant de ce type
 d'allocation (ou 0, et ici c'est possible) et enfin une colonne totalisant
 les deux chiffres précédents.

 Je pense que, dans l'esprit, ça ressemble à ce que tu veux ; ensuite, si tu
 veux avoir une requête avec uniquement tel ou tel type d'allocation, tu peux
 parfaitement pointer sur cette dernière requête et en extraire nombre1 et
 noùmbre2 qui seront toujours renseignés (puisque le ifnull est utilisé
 pour créer cette requête).

 On pourra en re-discuter un peu plus tard si tu veux.

 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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet ribotb

Bonsoir Marie-Pierre,

Je ne me suis pas penché sur ce problème (intéressant) mais je peux te 
dire en tout cas que le résultat ne peut pas être NULL. NULL n'est pas 
une valeur mais c'est un *état *qui indique que la valeur d'un élément 
est inconnue ou indéterminée.


Bernard

Le 21/04/2010 19:11, Marie-Pierre CORONEL a écrit :

re bonjour,

non non, je ne tiens pas à traiter les 3 régimes différemment, j'avais
essayé d'obtenir les calculs sur les 3 d'un coup mais je n'obtenais
jamais un chiffre juste -_- La seule fois où j'ai enfin obtenu un
chiffre juste c'est avec le système des 3 requêtes sauf quand j'ai
testé avec 0 occurence. Là je suis rentrée chez moi, mais je
regarderai tes requêtes demain.

Je veux bien qu'on discute de la rigidité de ma base, parce que j'ai
essayé de faire le plus pérenne possible et donc le contraire :'( mais
bon...

a+

Le 21 avril 2010 19:04, Docgranvilledocgranvi...@aol.com  a écrit :
   

Le 21/04/2010 18:04, Marie-Pierre CORONEL a écrit :
 

hum j'ai voulu faire du ménage dans ci-joint... et j'ai supprimé le
mauvais fichier...

nouveau lien http://www.cijoint.fr/cjlink.php?file=cj201004/cijMs7dYvM.odb


   

Re-bonjour Marie-Pierre,

J'ai jeté un coup d'oeil rapide sur ta base ; peut-être aurais-je (à
l'occasion) quelques réflexions à te faire partager sur sa conception qui me
semble un peu trop complexe (ou rigide si tu préfères).

En ce qui concerne ton problème particulier, je n'en connais pas
véritablement la solution mais je pense (c'est déjà quelque chose) en
connaître l'origine ; en réalité, je pense que le souci vient du fait que ta
requête porte sur une table vide ( plus précisément sur une vue vide, celle
générée par la Regime_allocations_part2_CMSA) ; la clause ifnull permet de
sauter un champ null dans un enregistrement mais, en l'occurrence, il n'y
a carrément pas d'enregistrement (puisqu'aucun enregistrement de la table
demandeurs ne correspond aux critères fixés dans cette fameuse requête
Regime_allocations_part2_CMSA.

Pour éviter ça, je me suis dit que, peut-être, tu pourrais faire une requête
(et éventuellement une vue) synthétisant, sur la période requise, le nombre
d'allocataires de type part1 pour chaque code d'allocation ; ta requête
Regime_allocation_partie1_CMSA deviendrait :
SELECT COUNT( Demandeurs.part1alloc ) AS nombre1,
Demandeurs.part1alloc FROM Mediations_toutes_Selection_periode,
Demandeurs WHERE Mediations_toutes_Selection_periode.demandeurs =
Demandeurs.no_demandeurs GROUP BY Demandeurs.part1alloc
(en fait, je n'ai supprimé que la clause HAVING)

Si on fait la même chose sur ta requête Regime_allocation_partie2_CMSA, elle
devient :
SELECT Demandeurs.part2alloc, COUNT( IFNULL( Demandeurs.part2alloc,
0 ) ) AS nombre2 FROM Mediations_toutes_Selection_periode, Demandeurs
WHERE Mediations_toutes_Selection_periode.demandeurs =
Demandeurs.no_demandeurs GROUP BY Demandeurs.part2alloc
(ici aussi, donc, siplement suppression de la clause HAVING).

Avec ces requêtes, on obtient un tableau regroupant, pour chaque code
d'allocation, le nombre d'allocataires sur la période.

La dernière requête est modifiée un peu plus en profondeur ; il s'agit de la
requête Regime_allocations_CMSA_Total, qui devient :
SELECT regimeCMSApart1.part1alloc, ifnull(nombre1,0) as nombre1,
ifnull(nombre2,0) as nombre2, ifnull(regimeCMSApart1.nombre1,0) +
ifnull(regimeCMSApart2.nombre2,0) AS Total FROM regimeCMSApart1 left
join regimeCMSApart2 on regimeCMSApart1.part1alloc =
regimeCMSApart2.part2alloc
(attention, cette requête porte sur les vues ; il ne faut donc pas oublier
de les modifier, sinon, elle sont toujours avec la clause HAVING)

Tu obtiens avec ça un tableau comportant une colonne énonçant les différents
types d'allocations rencontrés (ici, 0, 1 et 2), une colonne mentionnant le
nombre d'allocataires partie 1 bénéficiant de ce type d'allocation (ou 0
s'il n'y en a pas mais en l'occurrence, ce n'est pas possible), un colonne
mentionnant le nombre d'allocataires partie 2 bénéficiant de ce type
d'allocation (ou 0, et ici c'est possible) et enfin une colonne totalisant
les deux chiffres précédents.

Je pense que, dans l'esprit, ça ressemble à ce que tu veux ; ensuite, si tu
veux avoir une requête avec uniquement tel ou tel type d'allocation, tu peux
parfaitement pointer sur cette dernière requête et en extraire nombre1 et
noùmbre2 qui seront toujours renseignés (puisque le ifnull est utilisé
pour créer cette requête).

On pourra en re-discuter un peu plus tard si tu veux.

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, 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet Marie-Pierre CORONEL
Salut,

et pourtant la solution de Docgranville passe par Ifnull (que j'ai
essayé sans succès, je comprendrais sûrement demain pourquoi -_-)


Le 21 avril 2010 22:30, ribotb rib...@gmail.com a écrit :
 Bonsoir Marie-Pierre,

 Je ne me suis pas penché sur ce problème (intéressant) mais je peux te
 dire en tout cas que le résultat ne peut pas être NULL. NULL n'est pas une
 valeur mais c'est un *état *qui indique que la valeur d'un élément est
 inconnue ou indéterminée.

 Bernard

 Le 21/04/2010 19:11, Marie-Pierre CORONEL a écrit :

 re bonjour,

 non non, je ne tiens pas à traiter les 3 régimes différemment, j'avais
 essayé d'obtenir les calculs sur les 3 d'un coup mais je n'obtenais
 jamais un chiffre juste -_- La seule fois où j'ai enfin obtenu un
 chiffre juste c'est avec le système des 3 requêtes sauf quand j'ai
 testé avec 0 occurence. Là je suis rentrée chez moi, mais je
 regarderai tes requêtes demain.

 Je veux bien qu'on discute de la rigidité de ma base, parce que j'ai
 essayé de faire le plus pérenne possible et donc le contraire :'( mais
 bon...

 a+

 Le 21 avril 2010 19:04, Docgranvilledocgranvi...@aol.com  a écrit :


 Le 21/04/2010 18:04, Marie-Pierre CORONEL a écrit :


 hum j'ai voulu faire du ménage dans ci-joint... et j'ai supprimé le
 mauvais fichier...

 nouveau lien
 http://www.cijoint.fr/cjlink.php?file=cj201004/cijMs7dYvM.odb




 Re-bonjour Marie-Pierre,

 J'ai jeté un coup d'oeil rapide sur ta base ; peut-être aurais-je (à
 l'occasion) quelques réflexions à te faire partager sur sa conception qui
 me
 semble un peu trop complexe (ou rigide si tu préfères).

 En ce qui concerne ton problème particulier, je n'en connais pas
 véritablement la solution mais je pense (c'est déjà quelque chose) en
 connaître l'origine ; en réalité, je pense que le souci vient du fait que
 ta
 requête porte sur une table vide ( plus précisément sur une vue vide,
 celle
 générée par la Regime_allocations_part2_CMSA) ; la clause ifnull permet
 de
 sauter un champ null dans un enregistrement mais, en l'occurrence, il
 n'y
 a carrément pas d'enregistrement (puisqu'aucun enregistrement de la table
 demandeurs ne correspond aux critères fixés dans cette fameuse requête
 Regime_allocations_part2_CMSA.

 Pour éviter ça, je me suis dit que, peut-être, tu pourrais faire une
 requête
 (et éventuellement une vue) synthétisant, sur la période requise, le
 nombre
 d'allocataires de type part1 pour chaque code d'allocation ; ta requête
 Regime_allocation_partie1_CMSA deviendrait :
 SELECT COUNT( Demandeurs.part1alloc ) AS nombre1,
 Demandeurs.part1alloc FROM Mediations_toutes_Selection_periode,
 Demandeurs WHERE Mediations_toutes_Selection_periode.demandeurs =
 Demandeurs.no_demandeurs GROUP BY Demandeurs.part1alloc
 (en fait, je n'ai supprimé que la clause HAVING)

 Si on fait la même chose sur ta requête Regime_allocation_partie2_CMSA,
 elle
 devient :
 SELECT Demandeurs.part2alloc, COUNT( IFNULL(
 Demandeurs.part2alloc,
 0 ) ) AS nombre2 FROM Mediations_toutes_Selection_periode,
 Demandeurs
 WHERE Mediations_toutes_Selection_periode.demandeurs =
 Demandeurs.no_demandeurs GROUP BY Demandeurs.part2alloc
 (ici aussi, donc, siplement suppression de la clause HAVING).

 Avec ces requêtes, on obtient un tableau regroupant, pour chaque code
 d'allocation, le nombre d'allocataires sur la période.

 La dernière requête est modifiée un peu plus en profondeur ; il s'agit de
 la
 requête Regime_allocations_CMSA_Total, qui devient :
 SELECT regimeCMSApart1.part1alloc, ifnull(nombre1,0) as nombre1,
 ifnull(nombre2,0) as nombre2, ifnull(regimeCMSApart1.nombre1,0) +
 ifnull(regimeCMSApart2.nombre2,0) AS Total FROM regimeCMSApart1
 left
 join regimeCMSApart2 on regimeCMSApart1.part1alloc =
 regimeCMSApart2.part2alloc
 (attention, cette requête porte sur les vues ; il ne faut donc pas
 oublier
 de les modifier, sinon, elle sont toujours avec la clause HAVING)

 Tu obtiens avec ça un tableau comportant une colonne énonçant les
 différents
 types d'allocations rencontrés (ici, 0, 1 et 2), une colonne mentionnant
 le
 nombre d'allocataires partie 1 bénéficiant de ce type d'allocation (ou
 0
 s'il n'y en a pas mais en l'occurrence, ce n'est pas possible), un
 colonne
 mentionnant le nombre d'allocataires partie 2 bénéficiant de ce type
 d'allocation (ou 0, et ici c'est possible) et enfin une colonne
 totalisant
 les deux chiffres précédents.

 Je pense que, dans l'esprit, ça ressemble à ce que tu veux ; ensuite, si
 tu
 veux avoir une requête avec uniquement tel ou tel type d'allocation, tu
 peux
 parfaitement pointer sur cette dernière requête et en extraire nombre1
 et
 noùmbre2 qui seront toujours renseignés (puisque le ifnull est utilisé
 pour créer cette requête).

 On pourra en re-discuter un peu plus tard si tu veux.

 A+



 -
 To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: users-h...@fr.openoffice.org




 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet ribotb
Je n'ai pas encore examiné ta base mais à te lire et à priori  j'aurais 
dit que si les requêtes ne renvoient aucun tuple, le résultat du COUNT 
devrait être 0.


Le 21/04/2010 22:35, Marie-Pierre CORONEL a écrit :

Salut,

et pourtant la solution de Docgranville passe par Ifnull (que j'ai
essayé sans succès, je comprendrais sûrement demain pourquoi -_-)


Le 21 avril 2010 22:30, ribotbrib...@gmail.com  a écrit :
   

Bonsoir Marie-Pierre,

Je ne me suis pas penché sur ce problème (intéressant) mais je peux te
dire en tout cas que le résultat ne peut pas être NULL. NULL n'est pas une
valeur mais c'est un *état *qui indique que la valeur d'un élément est
inconnue ou indéterminée.

Bernard

Le 21/04/2010 19:11, Marie-Pierre CORONEL a écrit :
 

re bonjour,

non non, je ne tiens pas à traiter les 3 régimes différemment, j'avais
essayé d'obtenir les calculs sur les 3 d'un coup mais je n'obtenais
jamais un chiffre juste -_- La seule fois où j'ai enfin obtenu un
chiffre juste c'est avec le système des 3 requêtes sauf quand j'ai
testé avec 0 occurence. Là je suis rentrée chez moi, mais je
regarderai tes requêtes demain.

Je veux bien qu'on discute de la rigidité de ma base, parce que j'ai
essayé de faire le plus pérenne possible et donc le contraire :'( mais
bon...

a+

Le 21 avril 2010 19:04, Docgranvilledocgranvi...@aol.coma écrit :

   

Le 21/04/2010 18:04, Marie-Pierre CORONEL a écrit :

 

hum j'ai voulu faire du ménage dans ci-joint... et j'ai supprimé le
mauvais fichier...

nouveau lien
http://www.cijoint.fr/cjlink.php?file=cj201004/cijMs7dYvM.odb



   

Re-bonjour Marie-Pierre,

J'ai jeté un coup d'oeil rapide sur ta base ; peut-être aurais-je (à
l'occasion) quelques réflexions à te faire partager sur sa conception qui
me
semble un peu trop complexe (ou rigide si tu préfères).

En ce qui concerne ton problème particulier, je n'en connais pas
véritablement la solution mais je pense (c'est déjà quelque chose) en
connaître l'origine ; en réalité, je pense que le souci vient du fait que
ta
requête porte sur une table vide ( plus précisément sur une vue vide,
celle
générée par la Regime_allocations_part2_CMSA) ; la clause ifnull permet
de
sauter un champ null dans un enregistrement mais, en l'occurrence, il
n'y
a carrément pas d'enregistrement (puisqu'aucun enregistrement de la table
demandeurs ne correspond aux critères fixés dans cette fameuse requête
Regime_allocations_part2_CMSA.

Pour éviter ça, je me suis dit que, peut-être, tu pourrais faire une
requête
(et éventuellement une vue) synthétisant, sur la période requise, le
nombre
d'allocataires de type part1 pour chaque code d'allocation ; ta requête
Regime_allocation_partie1_CMSA deviendrait :
SELECT COUNT( Demandeurs.part1alloc ) AS nombre1,
Demandeurs.part1alloc FROM Mediations_toutes_Selection_periode,
Demandeurs WHERE Mediations_toutes_Selection_periode.demandeurs =
Demandeurs.no_demandeurs GROUP BY Demandeurs.part1alloc
(en fait, je n'ai supprimé que la clause HAVING)

Si on fait la même chose sur ta requête Regime_allocation_partie2_CMSA,
elle
devient :
SELECT Demandeurs.part2alloc, COUNT( IFNULL(
Demandeurs.part2alloc,
0 ) ) AS nombre2 FROM Mediations_toutes_Selection_periode,
Demandeurs
WHERE Mediations_toutes_Selection_periode.demandeurs =
Demandeurs.no_demandeurs GROUP BY Demandeurs.part2alloc
(ici aussi, donc, siplement suppression de la clause HAVING).

Avec ces requêtes, on obtient un tableau regroupant, pour chaque code
d'allocation, le nombre d'allocataires sur la période.

La dernière requête est modifiée un peu plus en profondeur ; il s'agit de
la
requête Regime_allocations_CMSA_Total, qui devient :
SELECT regimeCMSApart1.part1alloc, ifnull(nombre1,0) as nombre1,
ifnull(nombre2,0) as nombre2, ifnull(regimeCMSApart1.nombre1,0) +
ifnull(regimeCMSApart2.nombre2,0) AS Total FROM regimeCMSApart1
left
join regimeCMSApart2 on regimeCMSApart1.part1alloc =
regimeCMSApart2.part2alloc
(attention, cette requête porte sur les vues ; il ne faut donc pas
oublier
de les modifier, sinon, elle sont toujours avec la clause HAVING)

Tu obtiens avec ça un tableau comportant une colonne énonçant les
différents
types d'allocations rencontrés (ici, 0, 1 et 2), une colonne mentionnant
le
nombre d'allocataires partie 1 bénéficiant de ce type d'allocation (ou
0
s'il n'y en a pas mais en l'occurrence, ce n'est pas possible), un
colonne
mentionnant le nombre d'allocataires partie 2 bénéficiant de ce type
d'allocation (ou 0, et ici c'est possible) et enfin une colonne
totalisant
les deux chiffres précédents.

Je pense que, dans l'esprit, ça ressemble à ce que tu veux ; ensuite, si
tu
veux avoir une requête avec uniquement tel ou tel type d'allocation, tu
peux
parfaitement pointer sur cette dernière requête et en extraire nombre1
et
noùmbre2 qui seront toujours renseignés (puisque le ifnull est utilisé
pour créer cette requête).

On pourra en re-discuter un peu plus tard si tu veux.

A+




Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet Marie-Pierre CORONEL
C'était aussi mon point de vue. D'après la documentation
openoffice.org, le résultat de COUNT est un integer. Mais apparemment
un integer qui ne connaît pas 0. Comme le fait que la requête 2
entraînait l'absence de résultat de la requête 3 j'ai pensé à null
(qui se propage). Mais j'ai essayé toutes les commandes sensées
traiter le null (pendant 2 jours :'( !) et pas moyen de trouver :'( Et
donc j'ai fini par me dire que si pas 0, si pas null... rien ? demain,
dès l'aube, à l'heure où blanchit la campagne... je teste les requêtes
modifiées par Docgranville :D

Le 21 avril 2010 22:45, ribotb rib...@gmail.com a écrit :
 Je n'ai pas encore examiné ta base mais à te lire et à priori  j'aurais dit
 que si les requêtes ne renvoient aucun tuple, le résultat du COUNT devrait
 être 0.

 Le 21/04/2010 22:35, Marie-Pierre CORONEL a écrit :

 Salut,

 et pourtant la solution de Docgranville passe par Ifnull (que j'ai
 essayé sans succès, je comprendrais sûrement demain pourquoi -_-)


 Le 21 avril 2010 22:30, ribotbrib...@gmail.com  a écrit :


 Bonsoir Marie-Pierre,

 Je ne me suis pas penché sur ce problème (intéressant) mais je peux te
 dire en tout cas que le résultat ne peut pas être NULL. NULL n'est pas
 une
 valeur mais c'est un *état *qui indique que la valeur d'un élément est
 inconnue ou indéterminée.

 Bernard

 Le 21/04/2010 19:11, Marie-Pierre CORONEL a écrit :


 re bonjour,

 non non, je ne tiens pas à traiter les 3 régimes différemment, j'avais
 essayé d'obtenir les calculs sur les 3 d'un coup mais je n'obtenais
 jamais un chiffre juste -_- La seule fois où j'ai enfin obtenu un
 chiffre juste c'est avec le système des 3 requêtes sauf quand j'ai
 testé avec 0 occurence. Là je suis rentrée chez moi, mais je
 regarderai tes requêtes demain.

 Je veux bien qu'on discute de la rigidité de ma base, parce que j'ai
 essayé de faire le plus pérenne possible et donc le contraire :'( mais
 bon...

 a+

 Le 21 avril 2010 19:04, Docgranvilledocgranvi...@aol.com    a écrit :



 Le 21/04/2010 18:04, Marie-Pierre CORONEL a écrit :



 hum j'ai voulu faire du ménage dans ci-joint... et j'ai supprimé le
 mauvais fichier...

 nouveau lien
 http://www.cijoint.fr/cjlink.php?file=cj201004/cijMs7dYvM.odb





 Re-bonjour Marie-Pierre,

 J'ai jeté un coup d'oeil rapide sur ta base ; peut-être aurais-je (à
 l'occasion) quelques réflexions à te faire partager sur sa conception
 qui
 me
 semble un peu trop complexe (ou rigide si tu préfères).

 En ce qui concerne ton problème particulier, je n'en connais pas
 véritablement la solution mais je pense (c'est déjà quelque chose) en
 connaître l'origine ; en réalité, je pense que le souci vient du fait
 que
 ta
 requête porte sur une table vide ( plus précisément sur une vue vide,
 celle
 générée par la Regime_allocations_part2_CMSA) ; la clause ifnull
 permet
 de
 sauter un champ null dans un enregistrement mais, en l'occurrence, il
 n'y
 a carrément pas d'enregistrement (puisqu'aucun enregistrement de la
 table
 demandeurs ne correspond aux critères fixés dans cette fameuse requête
 Regime_allocations_part2_CMSA.

 Pour éviter ça, je me suis dit que, peut-être, tu pourrais faire une
 requête
 (et éventuellement une vue) synthétisant, sur la période requise, le
 nombre
 d'allocataires de type part1 pour chaque code d'allocation ; ta
 requête
 Regime_allocation_partie1_CMSA deviendrait :
 SELECT COUNT( Demandeurs.part1alloc ) AS nombre1,
 Demandeurs.part1alloc FROM Mediations_toutes_Selection_periode,
 Demandeurs WHERE Mediations_toutes_Selection_periode.demandeurs =
 Demandeurs.no_demandeurs GROUP BY Demandeurs.part1alloc
 (en fait, je n'ai supprimé que la clause HAVING)

 Si on fait la même chose sur ta requête Regime_allocation_partie2_CMSA,
 elle
 devient :
 SELECT Demandeurs.part2alloc, COUNT( IFNULL(
 Demandeurs.part2alloc,
 0 ) ) AS nombre2 FROM Mediations_toutes_Selection_periode,
 Demandeurs
 WHERE Mediations_toutes_Selection_periode.demandeurs =
 Demandeurs.no_demandeurs GROUP BY Demandeurs.part2alloc
 (ici aussi, donc, siplement suppression de la clause HAVING).

 Avec ces requêtes, on obtient un tableau regroupant, pour chaque code
 d'allocation, le nombre d'allocataires sur la période.

 La dernière requête est modifiée un peu plus en profondeur ; il s'agit
 de
 la
 requête Regime_allocations_CMSA_Total, qui devient :
 SELECT regimeCMSApart1.part1alloc, ifnull(nombre1,0) as
 nombre1,
 ifnull(nombre2,0) as nombre2, ifnull(regimeCMSApart1.nombre1,0)
 +
 ifnull(regimeCMSApart2.nombre2,0) AS Total FROM regimeCMSApart1
 left
 join regimeCMSApart2 on regimeCMSApart1.part1alloc =
 regimeCMSApart2.part2alloc
 (attention, cette requête porte sur les vues ; il ne faut donc pas
 oublier
 de les modifier, sinon, elle sont toujours avec la clause HAVING)

 Tu obtiens avec ça un tableau comportant une colonne énonçant les
 différents
 types d'allocations rencontrés (ici, 0, 1 et 2), une colonne
 mentionnant
 le
 nombre d'allocataires partie 1 bénéficiant de ce type d'allocation
 (ou
 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet ribotb

Ç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 .

Le 21/04/2010 23:12, Marie-Pierre CORONEL a écrit :

C'était aussi mon point de vue. D'après la documentation
openoffice.org, le résultat de COUNT est un integer. Mais apparemment
un integer qui ne connaît pas 0. Comme le fait que la requête 2
entraînait l'absence de résultat de la requête 3 j'ai pensé à null
(qui se propage). Mais j'ai essayé toutes les commandes sensées
traiter le null (pendant 2 jours :'( !) et pas moyen de trouver :'( Et
donc j'ai fini par me dire que si pas 0, si pas null... rien ? demain,
dès l'aube, à l'heure où blanchit la campagne... je teste les requêtes
modifiées par Docgranville :D

Le 21 avril 2010 22:45, ribotbrib...@gmail.com  a écrit :
   

Je n'ai pas encore examiné ta base mais à te lire et à priori  j'aurais dit
que si les requêtes ne renvoient aucun tuple, le résultat du COUNT devrait
être 0.

Le 21/04/2010 22:35, Marie-Pierre CORONEL a écrit :
 

Salut,

et pourtant la solution de Docgranville passe par Ifnull (que j'ai
essayé sans succès, je comprendrais sûrement demain pourquoi -_-)


Le 21 avril 2010 22:30, ribotbrib...@gmail.coma écrit :

   

Bonsoir Marie-Pierre,

Je ne me suis pas penché sur ce problème (intéressant) mais je peux te
dire en tout cas que le résultat ne peut pas être NULL. NULL n'est pas
une
valeur mais c'est un *état *qui indique que la valeur d'un élément est
inconnue ou indéterminée.

Bernard

Le 21/04/2010 19:11, Marie-Pierre CORONEL a écrit :

 

re bonjour,

non non, je ne tiens pas à traiter les 3 régimes différemment, j'avais
essayé d'obtenir les calculs sur les 3 d'un coup mais je n'obtenais
jamais un chiffre juste -_- La seule fois où j'ai enfin obtenu un
chiffre juste c'est avec le système des 3 requêtes sauf quand j'ai
testé avec 0 occurence. Là je suis rentrée chez moi, mais je
regarderai tes requêtes demain.

Je veux bien qu'on discute de la rigidité de ma base, parce que j'ai
essayé de faire le plus pérenne possible et donc le contraire :'( mais
bon...

a+

Le 21 avril 2010 19:04, Docgranvilledocgranvi...@aol.com  a écrit :


   

Le 21/04/2010 18:04, Marie-Pierre CORONEL a écrit :


 

hum j'ai voulu faire du ménage dans ci-joint... et j'ai supprimé le
mauvais fichier...

nouveau lien
http://www.cijoint.fr/cjlink.php?file=cj201004/cijMs7dYvM.odb




   

Re-bonjour Marie-Pierre,

J'ai jeté un coup d'oeil rapide sur ta base ; peut-être aurais-je (à
l'occasion) quelques réflexions à te faire partager sur sa conception
qui
me
semble un peu trop complexe (ou rigide si tu préfères).

En ce qui concerne ton problème particulier, je n'en connais pas
véritablement la solution mais je pense (c'est déjà quelque chose) en
connaître l'origine ; en réalité, je pense que le souci vient du fait
que
ta
requête porte sur une table vide ( plus précisément sur une vue vide,
celle
générée par la Regime_allocations_part2_CMSA) ; la clause ifnull
permet
de
sauter un champ null dans un enregistrement mais, en l'occurrence, il
n'y
a carrément pas d'enregistrement (puisqu'aucun enregistrement de la
table
demandeurs ne correspond aux critères fixés dans cette fameuse requête
Regime_allocations_part2_CMSA.

Pour éviter ça, je me suis dit que, peut-être, tu pourrais faire une
requête
(et éventuellement une vue) synthétisant, sur la période requise, le
nombre
d'allocataires de type part1 pour chaque code d'allocation ; ta
requête
Regime_allocation_partie1_CMSA deviendrait :
SELECT COUNT( Demandeurs.part1alloc ) AS nombre1,
Demandeurs.part1alloc FROM Mediations_toutes_Selection_periode,
Demandeurs WHERE Mediations_toutes_Selection_periode.demandeurs =
Demandeurs.no_demandeurs GROUP BY Demandeurs.part1alloc
(en fait, je n'ai supprimé que la clause HAVING)

Si on fait la même chose sur ta requête Regime_allocation_partie2_CMSA,
elle
devient :
SELECT Demandeurs.part2alloc, COUNT( IFNULL(
Demandeurs.part2alloc,
0 ) ) AS nombre2 FROM Mediations_toutes_Selection_periode,
Demandeurs
WHERE Mediations_toutes_Selection_periode.demandeurs =
Demandeurs.no_demandeurs GROUP BY Demandeurs.part2alloc
(ici aussi, donc, siplement suppression de la clause HAVING).

Avec ces requêtes, on obtient un tableau regroupant, pour chaque code
d'allocation, le nombre d'allocataires sur la période.

La dernière requête est modifiée un peu plus en profondeur ; il s'agit
de
la
requête Regime_allocations_CMSA_Total, qui devient :
SELECT regimeCMSApart1.part1alloc, ifnull(nombre1,0) as
nombre1,
ifnull(nombre2,0) as nombre2, ifnull(regimeCMSApart1.nombre1,0)
+
ifnull(regimeCMSApart2.nombre2,0) AS Total FROM regimeCMSApart1
left
join regimeCMSApart2 on regimeCMSApart1.part1alloc =
regimeCMSApart2.part2alloc
(attention, cette requête 

Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet Docgranville

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



Re: [users-fr] résultat COUNT n'est pas 0 ni null ?

2010-04-21 Par sujet Marie-Pierre CORONEL
En fait, avant la création des vues, c'est à dire par exemple si tu
transformes un des faux enregistrements des autres régimes pour qu'il
n'y ait pas d'occurence sur l'un des champs, tu verras que le résultat
est le même qu'avec les vues : aucun enregistrement dans requête 3
même sans vue quand l'une des requêtes 1 ou 2 ne ramène rien.
J'ai cru faire preuve d'astuce en mettant un des enregistrements CAF
en CMSA avant la création de la vue, donc les vues ramenaient toutes
les deux quelque chose, mais après réinscription en CAF au lieu de
CMSA... tu as vu le résultat par toi même...

Le 21 avril 2010 23:51, Docgranville docgranvi...@aol.com 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