[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[pmb.user] Re: Requête SQL - comptage / prête ur / section
Bonjour,
On ne se relit jamais assez !
En relisant mon message (pour la ne fois !! - et pourtant, je t'assure que
j'avais l'impression d'avoir tout revérifié), j'ai constaté que j'avais fait
un copier-coller à partir du commentaire d'une autre procédure, mais que le
code sql ne correspondait pas tout à fait..
Les copier-coller sont parfois traîtres. ;-) ;)-
On croit gagner du temps, mais on laisse parfois passer quelque chose.
Je m'explique.
Dans les paramètres et surtout les options, on peut cocher une case "liste
multiple".
Cela permet de sélectionner plusieurs éléments dans la liste.(c'est le bout
de phrase de commentaire dont j'avais fait un copier-coller par
distraction).
Comment sélectionner plusieurs éléments dans la liste déroulante?
Avec le système habituel de Windows
pour sélectionner des éléments consécutifs dans une liste : on maintient
la touche MAJ (SHIFT) enfoncée, et on clique sur les éléments à
sélectionner.
pour sélectionner des éléments non consécutifs dans une liste : on
maintient la touche CTRL enfoncée, et on clique sur les éléments à
sélectionner.
Voici une des variantes de mon message précédent..
Variante 1 : choix du prêteur (on affiche les résultats de toutes les
sections pour un prêteur choisi dans une liste)
select lender_libelle as Prêteur, section_libelle as Section, count(*) as
Nombre from exemplaires, lenders, docs_section where
expl_owner=!!proprietaire!! and section=expl_section and expl_owner=idlender
group by idsection order by section_libelle
Titre du paramètre (propriétaire) : prêteur
Liste de choix à partir d'une requête - cocher obligatoire
Options : select idlender, lender_libelle from lenders order by
lender_libelle (cocher liste multiple)
Mon début de commentaire correspond au code sql que je voulais écrire - et
que j'ai écrit
"(on affiche les résultats de toutes les sections pour UN prêteur choisi
dans une liste"
Avec la requête telle qu'elle est rédigée là, on peut cocher "liste
multiple" dans les options, mais on aura un message d'erreur si on essaye de
sélectionner plusieurs éléments.
Pour que le choix de plusieurs éléments soit possible, j'aurais dû écrire
select lender_libelle as Prêteur, section_libelle as Section, count(*) as
Nombre from exemplaires, lenders, docs_section where expl_owner in
(!!proprietaire!!) and section=expl_section and expl_owner=idlender group by
idsection order by section_libelle
donc non pas expl_owner=!!proprietaire!! (choix d'un seul propriétaire)
ce qui était mon idée de base quand j'ai rédigé la procédure
mais expl_owner in (!!proprietaire!!) (choix multiple possible)
ce qui correspond au commentaire recopié par inadvertance.
Désolée !
Donc, si tu veux pouvoir sélectionner plusieurs éléments dans la liste, il
faut modifier les variantes 2 et 3 suivant le même principe.
variante 2
where idsection =!!section!! doit devenir
where idsection in (!!section!!)
variante 3
expl_owner=!!proprietaire!! and idsection=!!section!! doit devenir
expl_owner in (!!proprietaire!!) and idsection in(!!section!!)
La variante 4 ne change pas puisqu'elle n'offrait aucune possibilité de
choix.
On finira par arriver à une version correcte, non seulement du code sql,
mais aussi du commentaire qui l'accompagne ;-) ;-)
N.B. Je vérifierai sur le Wiki, car comme cela fait longtemps que je fais
des copier-coller de ce bout de commentaire, il se peut que cette erreur y
figure aussi.
Bonne journée à tous,
Anne-Marie Cubat
----- Original Message -----
From: "Hervé BATARDIERE" <herve.batardiere@free.fr>
To: <pmb.user@pizz.net>
Sent: Wednesday, April 05, 2006 2:13 AM
Subject: [pmb.user] Re: Requête SQL - comptage / prête ur / section
Merci Anne-Marie
Super les procédures et surtout les explications, je commence à
comprendre un peu mieux les requêtes.
J'essaierai également de mettre quelques adaptations de requêtes sur le
Wiki histoire de compléter la liste.
Hervé Batardière
Anne-Marie Cubat-Vandeputte a écrit :
>Cher Hervé,
>
>Voici quatre variantes de la requête - je ne savais pas si tu voulais le
>choix du prêteur, de la section ou des deux
> (J'ai repris en 4e lieu la version où on ne choisit rien.)
>
>Il me semble que tout est ok.
>
>Bonne journée,
>
>Cordialement,
>
>Anne-Marie Cubat
>
>Ecole N.-D. de la Sagesse
>Avenue Van Overbeke, 10
>B-1083 Bruxelles
>Belgique
>
>
Variante 1 : choix du prêteur (on affiche les résultats de toutes les
sections pour un prêteur choisi dans une liste)
select lender_libelle as Prêteur, section_libelle as Section, count(*) as
Nombre from exemplaires, lenders, docs_section where
expl_owner=!!proprietaire!! and idsection=expl_section and
expl_owner=idlender group by idsection order by section_libelle
Titre du paramètre (propriétaire) : prêteur
Liste de choix à partir d'une requête - cocher obligatoire
Options : select idlender, lender_libelle from lenders order by
lender_libelle (cocher liste multiple)
Variante 2 : choix de la section (on affiche les résultats de tous les fonds
pour une section choisie dans une liste)
select lender_libelle as Prêteur, section_libelle as Section, count(*) as
Nombre from exemplaires, lenders, docs_section where idsection =!!section!!
and expl_section=idsection and expl_owner=idlender group by idlender,
idsection order by lender_libelle
Titre du paramètre (section) : section
Liste de choix à partir d'une requête - cocher obligatoire
Options : select idsection, section_libelle from docs_section order
by section_libelle (cocher liste multiple)
Variante 3 : choix du prêteur et de la section (on n'affiche les résultats
que d'un fonds et d'une section choisis dans une liste)
select lender_libelle as Prêteur, section_libelle as Section, count(*) as
Nombre from exemplaires, lenders, docs_section where
expl_owner=!!proprietaire!! and idsection=!!section!! and
expl_section=idsection and expl_owner=idlender group by idlender, idsection
Paramètres
Titre du paramètre (propriétaire) : prêteur
Liste de choix à partir d'une requête - cocher obligatoire
Options : select idlender, lender_libelle from lenders order by
lender_libelle (cocher liste multiple)
Titre du paramètre (section) : section
Liste de choix à partir d'une requête - cocher obligatoire
Options : select idsection, section_libelle from docs_section order
by section_libelle (cocher liste multiple)
Variante 4 : on ne choisit rien, on affiche les résultats de tous les fonds
et de toutes les sections
select lender_libelle as Prêteur, section_libelle as Section, count(*) as
Nombre from exemplaires, lenders, docs_section where expl_owner=idlender and
idsection=expl_section group by idlender, idsection order by lender_libelle,
section_libelle
>
>
>----- Original Message -----
>From: "Hervé BATARDIERE" <herve.batardiere@free.fr>
>To: <pmb.user@pizz.net>
>Sent: Monday, April 03, 2006 1:34 AM
>Subject: [pmb.user] Re: Requête SQL - comptage / prêteur / section
>
>
>Bonjour Anne Marie,
>Oui cette requête marche, mais elle ne correspond pas à ce que je
>voulais faire. J'aurais voulu faire les comptages de nombre de documents
>par section pour un prêteur donné à partir d'une liste de choix.
>
>Hervé BATARDIERE
>
>Anne-Marie Cubat-Vandeputte a écrit :
>
>
>
>>Bonjour,
>>
>>Je crois que cette requête-ci correspond à ce que vous aviez demandé.
>>
>>J'ai testé chez moi - pas sur la bibliothèque de l'école, mais sur la
>>petite
>>base de données qui me sert pour mes tests - et à première vue les totaux
>>me
>>semblent corrects..
>>
>>
>>Comptage des exemplaires / prêteur / section
>>
>>select lender_libelle as Prêteur, section_libelle as Section, count(*) as
>>Nombre from exemplaires, lenders, docs_section where expl_owner=idlender
>>and
>>idsection=expl_section group by idlender, idsection order by
>>lender_libelle, section_libelle
>>
>>
>>Amicalement,
>>
>>Anne-Marie Cubat
>>
>>Ecole N.-D. de la Sagesse
>>Avenue Van Overbeke, 10
>>B-1083 Bruxelles
>>Belgique
>>
>>
>>----- Original Message -----
>>From: "Hervé BATARDIERE" <herve.batardiere@free.fr>
>>To: <pmb.user@pizz.net>
>>Sent: Friday, March 31, 2006 1:34 AM
>>Subject: [pmb.user] Requête SQL
>>
>>
>>Bonjour à tous,
>>
>>Je voulais faire une requête pour compter le nombre de documents par
>>section pour un prêteur donné.
>>Voici la requête :
>>
>>select lender_libelle as Prêteur, section_libelle as Section, count(*)
>>as Nombre from exemplaires, lenders, docs_statut , docs_section where
>>expl_owner='!!idlender!!' and idsection=expl_section group by
>>section_libelle order by section_libelle
>>J'obtient bien les différentes section pour le prêteur donné, mais le
>>résultat chiffré ne correspond pas du tout au nombre de documents
>>présents pour le prêteur..
>>
>>Une idée ?
>>
>>Merci de votre aide
>>
>>H BATARDIERE
>>
>>
>>
>>
>>Liste de diffusion pmb.user
>>Pour se désinscrire : mailto:pmb.user_request@sigb.net?subject=unsubscribe
>>
>>
>>
>>
>>Liste de diffusion pmb.user
>>Pour se désinscrire : mailto:pmb.user_request@sigb.net?subject=unsubscribe
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>Liste de diffusion pmb.user
>Pour se désinscrire : mailto:pmb.user_request@sigb.net?subject=unsubscribe
>
>
>
>
>Liste de diffusion pmb.user
>Pour se désinscrire : mailto:pmb.user_request@sigb.net?subject=unsubscribe
>
>
>
>
>
>
>
Liste de diffusion pmb.user
Pour se désinscrire : mailto:pmb.user_request@sigb.net?subject=unsubscribe
Liste de diffusion pmb.user
Pour se désinscrire : mailto:pmb.user_request@sigb.net?subject=unsubscribe