Ancestrologie - Plugins et Outils > BOA
Lister les différentes sources de mes saisies
Roblim:
Bonjour,
Dans l’objectif de disposer d’une vision globale des sources citées dans ma généalogie, je suis en train de recenser les contenus du champ source que j’ai saisis dans les :
- évènements individuels et familiaux,
- infos de l’individu
- et aussi dans le champ Notes (car il n’y a pas de champ source) des Domiciles.
S’agissant des domiciles, je lance la requête suivante :
SELECT
ADR_KLE_IND,
ADR_VILLE,
ADR_SUBD,
ADR_PAYS,
ADR_MEMO
FROM
INDIVIDU
INNER JOIN EVENEMENTS_IND ON (INDIVIDU.CLE_FICHE = EVENEMENTS_IND.EV_IND_KLE_FICHE),
ADRESSES_IND
WHERE
(INDIVIDU.KLE_DOSSIER = 4) AND
(ADRESSES_IND.ADR_KLE_IND = INDIVIDU.CLE_FICHE) AND
(ADR_MEMO<>0)
ORDER BY
ADR_KLE_IND
Elle me restitue 12907 occurrences dont certaines sont vides en dépit de ADR_MEMO<>0 ; c’est ma 1ère interrogation.
D’autre part je constate que pour un même individu la requête me restitue plus de Domicile que j’en ai saisi ; c’est ma 2ème interrogation.
Pouvez-vous m’aider à comprendre sur ces deux interrogations et éventuellement à m’indiquer une requête plus approprié sans doute à la recherche des champs Notes des domiciles saisis.
DDdeBerdeux:
Bonjour,
Téléchargez le fichier joint et changez son extension de .txt en .sql. C'est nécessaire pour le charger dans le BOA.
Exécutez-le par "Exécuter requête", il liste toutes les sources présentes dans le dossier en cours, mais toutes les lignes de la même source sont bout à bout sur la même ligne car la grille du BOA n'accepte que les chaînes de caractères (sans retour à la ligne).
André
DDdeBerdeux:
PS: Et si vous ne voulez que le texte des sources distinctes, sans savoir à quels individus elles sont attachées, remplacez en tête de la requête le texte:
select i.NOM
,i.PRENOM
,s.*
par :
select distinct cast(substring(s.source from 1 for 2000) as varchar(2000))
Mais comme pour la requête précédente, il faut être patient... et attendre que l'application réponde, même si Windows vous propose de la fermer.
André
Roblim:
Bonjour André,
Je vous remercie pour votre réponse très rapide et votre expertise.
La version avec les noms-prénoms me convient totalement.
Cependant le résultat représentant 75878 lignes, la transformation en Excel est tronquée car il n'a que 65536 lignes.
Peut-être serait-il possible de faire deux requêtes avec cette version nom-prénom :
- une avec les évènements individuels
- et l'autre avec les évènements familiaux, les info individus et les adresses.
DDdeBerdeux:
Pour que du code SQL soit ignoré, il suffit de le mettre en commentaires.
Le texte qui commence par les symboles /* et finit par */ est un considéré comme un commentaire.
Dans la sous-requête d'alias s, "(select ... union select .....) s", il suffit donc d'encadrer par ces symboles les blocs à ignorer, par exemple :
/*select ADR_KLE_IND
,'Adresse individuelle'
,'RESI'
,ADR_MEMO
from ADRESSES_IND
where char_length(ADR_MEMO)>0
union*/
pour supprimer les notes des adresses.
en faisant attention à ce que la sous requête ne commence et ne finisse pas par "union" qui est uniquement destiné à séparer les blocs.
Attention aussi, si vous supprimez le premier bloc (celui des sources liées directement à l'individu). C'est dans ce bloc que sont renommés les champs de sortie (exemple "as NIP"). Ces noms doivent figurer dans le premier bloc "actif".
André
Navigation
[#] Page suivante
Utiliser la version classique