[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[pmb.user] Re: Requête d'inventaire
Bonjour,
Voici la requête demandée - on sélectionne à chaque fois un seul
propriétaire
La procédure affiche le nom de l'auteur uniquement s'il s'agit d"un auteur
principal.
Le nom des auteurs secondaires n'est pas mentionné. (sinon, on pourrait
avoir plusisurs fois le même exemplaire, avec à chaque fois le nom d'un des
auteurs secondaires).
Version sans n° de code-barres
select section_libelle as Section, expl_cote as Cote,
GROUP_CONCAT(REPEAT(CONCAT(a.author_name, ', ', a.author_rejete),
1/(r.responsability_type=0)) SEPARATOR ', ') as Auteurs, tit1 as Titre from
authors a, exemplaires e, notices n, lenders l, docs_section, responsability
r where expl_owner = !!proprietaire!! and expl_notice=notice_id and
expl_owner=idlender and expl_section=idsection and responsability_notice =
notice_id AND responsability_author = author_id group by expl_cb order by
expl_cote, expl_section, expl_cb
Titre du paramètre : propriétaire / ou prêteur (comme vous voulez)
Liste de choix à partir d'un requête
Options : select idlender, lender_libelle from lenders order by
lender_libelle (NE PAS cocher case multiple)
voir explications ci-dessous
Version avec n° de code-barres
select section_libelle as Section, expl_cote as Cote,
GROUP_CONCAT(REPEAT(CONCAT(a.author_name, ', ', a.author_rejete),
1/(r.responsability_type=0)) SEPARATOR ', ') as Auteurs, tit1 as Titre,
expl_cb as Code_barres from authors a, exemplaires e, notices n, lenders l,
docs_section, responsability r where expl_owner =!!proprietaire!! and
expl_notice=notice_id and expl_owner=idlender and expl_section=idsection and
responsability_notice = notice_id AND responsability_author = author_id
group by expl_cb order by expl_cote, expl_section, expl_cb
**IMPORTANT : Remarque de syntaxe**
Il y a une différence cruciale entre
d'une part where expl_owner = !!proprietaire!! ou
where idsection = !!section!! ou where expl_statut = !!statut!!
et d'autre part where expl_owner in (!!proprietaire!!) ou where
idsection in (!!section!!) ou where expl_statut in (!!statut!!)
Si j'écris where expl_owner in (!!proprietaire!!) - j'emploie le mot "in"
et les parenthèses
c'est que je veux laisser la possibilité de choisir un ou plusieurs
propriétaires
vous devez cocher la case "liste multiple" pour disposer vraiment de ce
choix (au moment de l'exécution de la requête)
Mais si j'écris where expl_owner = !!proprietaire!! - j'emploie le signe
égal
dans ce cas, je dis de NE PAS cocher "liste multiple"
car je veux restreindre le choix à une seule possibilité (un seul
statut, dans ce cas-ci)
même si vous cochez la case "liste multiple", cela va déclencher un
message d'erreur au moment de l'exécution
N.B. Le fait d'employer la syntaxe avec in ( ) et de cocher la case "liste
multiple" n'oblige pas l'utilisateur à choisir - au moment de l'exécution de
la requête -plusieurs éléments dans la liste, il peut très bien ne
sélectionner par exemple qu'un seul propriétaire.
Mais le fait d'avoir employé cette syntaxe avec "in" et d'avoir coché cette
case rend votre procédure plus polyvalente, puisqu'on peut demander la liste
pour 1 ou 2 propriétaires, au choix.
Idem pour les ections ou statuts.
A vous de voir ce que vous préférez employer dans votre requête.
**La syntaxe est donc fort importante**
En résumé
- pour avoir la possibilité de choisir plusieurs éléments dans la liste
il faut employer la syntaxe avec in( ) ET cocher la case "liste
multiple"
(les 2 conditions doivent être remplies)
- pour être sûr de restreindre le choix à une possibilité et éviter tout
risque de message d'erreur
soit il faut employer la syntaxe avec in( ) ET NE PAS cocher la case
"liste multiple"
soit il faut employer la syntaxe avec le signe = ET NE PAS cocher la case
"liste multiple"
- attention si vous avez employé la syntaxe avec le signe = (c'est le
grand "piège")
ne cochez surtout pas la case "liste multiple" - sinon l'utilisateur sera
confronté à un message d'erreur s'il essaye de choisir plusieurs éléments
**Rappel : 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 le premier et le
dernier élément à 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.
Sinon, si vous voulez d'autres requêtes d'inventaire, allez voir sur le
Wiki, j'ai mis en ligne quelques variantes.
Voir requêtes sql - inventaire (3e partie)
Bonne journée,
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: Thursday, April 06, 2006 2:24 AM
Subject: [pmb.user] Requête d'inventaire
Bonjour à tous,
Je voudrais faire une requête pour éditer un inventaire des documents de
la bibliothèque avec les éléments suivants :
Section Cote Titre Auteur nom + prénom pour un Prêteur dans une
liste de choix
Voici le début de la requête, mais je coince sur le nom de l'auteur
select expl_section as Section, expl_cote as Cote, tit1 as Titre from
exemplaires, notices, docs_statut, lenders where
expl_owner=!!proprietaire!! and expl_notice=notice_id and
expl_statut=idstatut and expl_owner=idlender and expl_section=idsection
order by expl_cote, expl_section
Que faut-il rajouter ?
Merci de votre aide
Hervé 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