[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pmb.user] Mise à jour des requêtes sur le Wiki




Bonjour à tous !


Après les nombreux échanges sur la liste, j'ai pu améliorer un certain nombre de requêtes sql.
Je n'ai pas intégré ces modifications dans ce message, car cela aurait été beaucoup trop long. Mais vous trouverez les mises à jour sur le Wiki.
C'est le moment ou jamais d'aller y jeter un petit coup d'oeil ...


Quelques indications générales

1) Premier changement important :

Puisque je connais maintenant (grâce à Eric et Alain) la manière d'exécuter une action personnalisable pour les exemplaires contenus dans un panier, je ne dois plus "transiter" comme je le faisais auparavant par un changement provisoire de statut des exemplaires.
Apparemment, nous étions nombreux à passer par cette étape intermédiaire, qui est devenue inutile.

Vous trouverez ci-dessous (en fin de message) deux exemples qui intègrent ce nouveau mode de sélection des exemplaires à imprimer : un exemple d'étiquettes, et un autre d'inventaire.
Pour l'inventaire, il s'agit d'une liste complète : cote de rangement, code-barres, auteur principal (pas les auteurs secondaires - merci encore à Vincent), titre et année de publication.

J'ai simplement ajouté une instruction au code qu'Alain avait transmis, c'est "group by expl_cb"

En effet, le paramétrage de la requête permet de cocher "liste multiple" dans les options, ce qui fait qu'on pourrait sélectionner 2 ou 3 paniers dans la liste.
Or il se peut qu'un livre figure dans plusieurs paniers.
Cette instruction (group by expl_cb) permet d'éviter d'avoir des doublons. Même si un livre appartient à plusieurs paniers, il ne figurera qu'une seule fois dans la liste.


J'ai donc modifié quatre pages sur le Wiki
    - différences et liens entre requêtes dans les paniers et états personnalisables
    - impression d'étiquettes de rangement - généralités - 1e partie
    - étiquettes de rangement : quelques variantes - 2e partie
    - inventaire, liste : quelques variantes - 3e partie

J'ai supprimé tous les passages où j'expliquais pourquoi changer provisoirement le statut des exemplaires, vérifié le reste et ajouté la sélection par panier.


Au total, je propose donc 5 manières de sélectionner les exemplaires pour lesquels on désire des étiquettes ou dont on souhaite imprimer la liste.
    - choix sur base du code-barres : exemplaires dont le code-barres est >= ... et <= ...
    - choix sur base du panier : exemplaires qui figurent dans un ou plusieurs paniers
    - choix sur base de la cote de rangement : exemplaires dont le début de la cote est >= ... et <= ...
            Dans l'hypothèse d'une indexation Dewey, la cote de rangement commence par les 3 chiffres de la Dewey
    - choix sur base de la section : exemplaires qui figurent dans une ou plusieurs sections
    - choix sur base du statut : exemplaires dont le statut est ..

Vous avez les codes pour les livres et pour les périodiques, c'est donc fort complet.


 
2) Suite à d'autres échanges sur la liste, j'ai également mis au point quelques procédures de comptage (par prêteur, section et statut), en laissant la possibilité de choisir dans une liste soit le prêteur, soit la section, soit les deux - ou ne laissant aucune possibilité de choix et en comptant donc tout.

J'ai créé une nouvelle page sur le WIki : quelques requêtes de comptage.

A nouveau, j'ai mis un exemple en fin de message.


Bonne lecture !


Anne-Marie Cubat

Ecole N.-D. de la Sagesse
Avenue Van Overbeke, 10
B-1083 Bruxelles
Belgique



Quelques exemples - pour vous inciter non seulement à parcourir le Wiki mais aussi à y ajouter vos requêtes     ;-)   ;-) 


Etiquettes pour les livres dans un ou plusieurs paniers

Code sql
(Attention si vous faites un copier-coller - effacer les ENTER dans ce code, sinon il ne fonctionne pas)
select left(expl_cote,3), substring(expl_cote from 5 for 3), substring(expl_cote from 9 for 3), tit1, expl_cb from exemplaires, notices, caddie_content where caddie_id in (!!CADDIE!!) and expl_id=object_id and expl_notice=notice_id group by expl_cb order by expl_cb

Paramètre : Nom du panier - Liste de choix à partir d'une requête
Options : SELECT idcaddie, name FROM caddie where type='EXPL' ORDER BY name   (cocher liste multiple)
N.B. Ne pas oublier de cliquer sur "enregistrer" avant de fermer la fenêtre options


Inventaire des livres - sélection par panier

Code sql
(Attention si vous faites un copier-coller - effacer les ENTER dans ce code, sinon il ne fonctionne pas)
SELECT e.expl_cote as Cote, e.expl_cb as Code_barres, GROUP_CONCAT(REPEAT(CONCAT(a.author_name, ', ', a.author_rejete), 1/(r.responsability_type=0))  SEPARATOR ', ') as Auteurs, n.tit1 as Titre, n.year as Année FROM caddie_content c, exemplaires e, notices n, authors a, responsability r WHERE c.caddie_id in (!!CADDIE!!) and e.expl_id=object_id and e.expl_notice=n.notice_id  and r.responsability_notice = n.notice_id AND r.responsability_author = a.author_id GROUP BY e.expl_cb ORDER BY e.expl_cote, n.index_sew, e.expl_cb

Paramètre : Nom du panier - Liste de choix à partir d'une requête
Options : SELECT idcaddie, name FROM caddie where type='EXPL' ORDER BY name   (cocher liste multiple)


Comptage
Choix des prêteurs et des sections (on affiche les résultats d'un ou plusieurs fonds et d'une ou plusieurs sections)

Code
select lender_libelle as Prêteur, section_libelle as Section, count(*) as Nombre from exemplaires, lenders, docs_section where expl_owner in (!!proprietaire!!) and idsection in (!!section!!) and expl_section=idsection and expl_owner=idlender group by idlender, idsection order by lender_libelle, 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)

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)


Liste de diffusion pmb.user
Pour se désinscrire : mailto:pmb.user_request@sigb.net?subject=unsubscribe