forum Ancestrologie
Ancestrologie - Le Programme => Ancestrologie - Utilisation => Discussion démarrée par: emable le 29 Janvier 2023 à 12:11:48
-
Bonjour,
J'ai trouvé cette requête qui compte les civiltés :
SELECT
count(INDIVIDU.PREFIXE) AS Nbre,
INDIVIDU.PREFIXE
FROM
INDIVIDU
WHERE
(INDIVIDU.KLE_DOSSIER = 17)
GROUP BY
INDIVIDU.PREFIXE
est-il possible d'y ajouter les noms et NIP?
J'ai des civilité farfelues et aimerait y remédier
Merci de votre aide
J-François
-
Bonjour Emable
Voici une requête qui devrait apporter une réponse à la question :
SELECT
count(INDIVIDU.PREFIXE) AS NBRE,
INDIVIDU.NOM,
INDIVIDU.PRENOM,
INDIVIDU.CLE_FICHE,
INDIVIDU.PREFIXE
FROM
INDIVIDU
WHERE
(INDIVIDU.KLE_DOSSIER = 6)
GROUP BY
INDIVIDU.NOM,
INDIVIDU.PRENOM,
INDIVIDU.CLE_FICHE,
INDIVIDU.PREFIXE
HAVING
(COUNT(INDIVIDU.NOM) = COUNT(INDIVIDU.PREFIXE))
ORDER BY
INDIVIDU.NOM
Changer 6 par votre numéro de dossier
Je l'ai testé dans le générateur de SQL d'Ancestrologie car cela permet (avec les flèche des entêtes) de restreindre les réponses.
Je vais avoir moi aussi du travail car je ne suis pas très cohérent dans l'orthographe de mes préfixes !!!
Cordialement
-
Bonsoir,
SELECT
NOM,
PRENOM,
CLE_FICHE,
PREFIXE
FROM
INDIVIDU
WHERE
KLE_DOSSIER=(select DLL_DOSSIER from GESTION_DLL) --=dossier si execution dans BOA
and PREFIXE is not null
ORDER BY
NOM,PRENOM
fonctionne aussi bien tout en étant bien plus simple.
Lorsqu'une seule table est interrogée dans une requête, il n'y a pas ambiguïté, les champs nommés appartiennent obligatoirement à la table. Il est donc inutile d'en préfixer le nom par le nom de la table ou un nom d'alias.
GROUP BY
INDIVIDU.NOM,
INDIVIDU.PRENOM,
INDIVIDU.CLE_FICHE,
INDIVIDU.PREFIXE
Dans ce groupe CLE_FICHE étant unique (chaque individu a une CLE_FICHE différente), count(INDIVIDU.PREFIXE) ne peut être que NULL (le champ est NULL) ou valoir 1. Si votre requête fonctionne, c'est parce que dans la clause
HAVING
(COUNT(INDIVIDU.NOM) = COUNT(INDIVIDU.PREFIXE))
COUNT(INDIVIDU.NOM) a aussi toujours la valeur 1. Cette clause est donc équivalente à un WHERE PREFIXE is not null sur la table.
Lors de l'ouverture du BOA, le numéro du dossier en cours est inscrit dans la table GESTION_DLL. Le lire dans la requête en cours permet de ne pas avoir besoin de le saisir.
André
-
Bonsoir
Merci André
J'en apprends un peu chaque jour !
Cordialement
-
Bonjour,
Merci pour cette requête, elle fonctionne très bien :)