Statistikk i Mikromarc 2 - Egendefinerte

Fra Mikromarc Wiki
Hopp til navigeringHopp til søk

I modulen Mikromarc 2 Utlånsstatistikk ligger det mange ferdigdefinerte statistikker. Det er også mulig å legge inn nye statistikker i tillegg til å kopiere og endre de eksisterende statistikkene.

Statistikkprogrammet har to forskjellige måter å definere statistikkene på. Den ene er via skjema, den andre er å legge inn SQL-skript. Begge definisjonsmåtene støtter avgrensnings-/filterfunksjonalitet fra og med versjon 2.7.0.

Nedenfor er det lagt ut noen statistikker som er et tilleg til standardstatistikkene i MM2. Dette er SQL-statistikker.


Gjør slik for å legge inn en av statistikkene nedenfor:

  1. Start modulen Mikromarc 2 Utlånsstatistikk fra utlånsprogrammet eller programgruppen til Mikromarc 2 (Mikromarc-verktøy)
  2. Trykk på knappen Statistikkdefinisjon i stolpemenyen til venstre for å åpne vinduet Statistikkdefinisjoner
  3. Trykk på knappen Ny, så åpnes et nytt vindu – Statistikkdefinisjon
  4. Skriv inn navnet på statistikken i feltet Statistikknavn
  5. Fyll evt. inn det du ønsker å gruppere statistikken på i feltet Type
  6. Aktiver fanen Skriv inn SQL-kode
  7. Trykk på Endre SQL-kode, så åpnes vinduet SQL-definisjon
  8. Kopier ønsket SQL-skript nedenfor, og lim det inn i vinduet Skriv inn SQL SELECT-setning. Alt som står innenfor firkanten med stiplet ramme skal kopieres
  9. Trykk OK. Merk at det ikke går an å bruke knappen Åpne/utfør SQL-forespørsel... for SQL-skript som bruker filtre (:AddFilter etc) i vinduet
  10. Trykk OK i de neste to bildene for å gå tilbake til startbildet
  11. Statistikken skal nå kunne kjøres ved å gå på Velg statistikk og deretter trykke Beregn



Utlån (inkl. fornyelser) på topp - Titler (> 50 lån)

SELECT Title AS "Tittel", Author AS "Forfatter", 
Doctype AS "Materialbetegnelse", count(*) AS "Utlån"
FROM marchist
WHERE Service_Code in (8,9)
:AddFilter
GROUP BY  "Tittel", "Forfatter", "Materialbetegnelse"
HAVING "Utlån" > 50
ORDER BY "Utlån" DESC
/* 
Denne rapporten gir en liste over de titlene som er mest utlånt (inkludert fornyet) i tidsperioden. 
Titlene grupperes på tittel, forfatter og materialtype, slik at forskjellige utgivelser av samme verk vil summeres.
Kun de med mer enn 50 lån blir vist. Dette kan endres i linjen HAVING "Utlån" > 50 
Linjen WHERE Service_Code in (8,9) kan erstattes med WHERE Service_Code = 8 for å kun telle utlån
Utvalg går på viewet MarcHist, som er et utdrag av en kombinasjon av Service_History og Marc_Record. 
Datoene er for utlånstid, enhetene er hvor utlåner/fornyelsen skjedde
*/


Utlån (inkl. fornyelser) på topp - Forfatter (> 50 lån)

SELECT Author AS "Forfatter", count(*) AS "Utlån"
FROM marchist
WHERE Service_Code in (8,9)
:AddFilter
GROUP BY  "Forfatter"
HAVING "Utlån" > 50
ORDER BY "Utlån" DESC
/*
Denne rapporten gir en liste over de forfatterne som er mest utlånt (inkludert fornyet) i tidsperioden. 
Kun de med mer enn 50 lån blir vist. Dette kan endres i linjen HAVING "Utlån" > 50 
Linjen WHERE Service_Code in (8,9) kan erstattes med WHERE Service_Code = 8 for å kun telle utlån
Utvalg går på viewet MarcHist, som er et utdrag av en kombinasjon av Service_History og Marc_Record. 
Datoene er for utlånstid, enhetene er hvor utlåner/fornyelsen skjedde
*/


Utlån (inkl. fornyelser) på annen enhet - Interne fjernlån

//select 1 top 1 from service_history -- La denne utkommenterte linjen være for å velge AddFilter mot service_history
select 
(Case
when (select dept from unit where name = belong_to_unit_name) = 1 and (select isill from unit where name = belong_to_unit_name) = 0 Then (select name from unit where unit_id = (select parent_unit_id from unit where name = belong_to_unit_name))
else belong_to_unit_name
end) as "Tilhører",
(Case
when (select dept from unit where name = service_at_unit_name) = 1 and (select isill from unit where name = service_at_unit_name) = 0 Then (select name from unit where unit_id = (select parent_unit_id from unit where name = service_at_unit_name))
else service_at_unit_name
end) as "Utlånt på",
(Case service_code
when '8' then 'Utlån'
when '9' then 'Fornyelse'
else 'Feil?'
end )as "Type",
count(1) as "Antall"
from service_history
where
service_code in (8,9) and
year(service_time) = 2010
and "Tilhører" not like "Utlånt på"
:AddFilter
group by "Tilhører", "Utlånt på", "Type"
order by "Tilhører", "Utlånt på", "Type" desc
/*
Denne statistikken gir en oversikt over antall eksemplar som er lånt ut på annen enhet enn der de er fast plassert.
Avdelinger telles sammen med overordnet enhet.
Det forutsettes at avdelinger kun er på nederste nivå i enhetshierarkiet.
*/


Hyllevarmere - Titler uten utlån i perioden

SELECT pm_value11 as "Hylle", Pm_Value2 AS "Forfatter", 
Pm_Value1 AS "Tittel",  Pm_Value4 AS Utgitt
FROM Marc_Record
WHERE Marc_Record.isscrapped = 0 
and Marc_Record.Marc_id NOT IN (SELECT Marc_id FROM 
Service_History WHERE Service_Time >= ':AddFilterFromDate' 
AND Service_Time <= ':AddFilterToDate' and service_code in (8,9))
:AddFilterUnit :AddFilter
ORDER BY "Hylle", "Tittel",  "Forfatter" , "Utgitt"
/*
Denne rapporten gir en oversikt over titler som ikke har hatt noen eksemplar på utlån i perioden.
Slettede (slettemerkede) poster vises ikke.
Ved å sette perioden frem i tid vil alle poster komme med på rapporten hvis det er ønskelig
Datofilteret går mot utlånsdato, øvrige filtere går mot eksemplar og post. 
*/


Hyllevarmere - Eksemplar uten utlån i perioden

SELECT (select pm_value1 from marc_record where marc_id = c.marc_id) AS Tittel 
-- Merk at den Tittel hentes som sub-select kun for å få brukt marc_record i første select. Det er for at :AddFilter skal slå inn på denne og ikke på første egentlige (sub-)select som er mot service_history lenger ned. 
, Pm_Value2 AS Forfatter, Pm_Value4 AS Utgitt,
getshelfmark(C.ex_id) as Hylle,
C.bar_code AS Strekkode,
C.Reg_date as "Reg dato",
(SELECT Description FROM Copy_status WHERE Code = C.Status_code) AS Status,
(select date(max(service_time)) from service_history where service_code = 8 and service_history.ex_id = c.ex_id) as "Sist utlånt",
(select count(1) from service_history where service_code in (8) and service_history.ex_id = c.ex_id) as "Antall utlån"
FROM Marc_Record KEY JOIN Copy C
WHERE Marc_record.IsScrapped = 0 
AND Marc_record.Reg_Date < GetDate() - 365 
AND C.Permit_Loan = 1 
AND C.Is_scrapped = 0
AND C.status_code <> 2
AND NOT EXISTS (SELECT 1 FROM Service_History WHERE service_code = 8 and Service_Time > ':AddFilterFromDate' AND Service_Time <= ':AddFilterToDate' AND ex_id = c.ex_id) 
:AddFilterUnit :AddFilter
Order by Hylle, Forfatter, Tittel, marc_record.marc_id, "Antall utlån"
/*
Denne rapporten gir en oversikt over eksemplar som ikke har vært utlånt i perioden.
Eksemplar på slettede (slettemerkede) poster og kasserte eksemplar vises ikke. 
Eksemplar på poster registrert siste 365 dager vises ikke, heller ikke eksemplar under innkjøpskontroll
Ved å sette perioden på utvalg frem i tid vil alle eksemplar unntatt slettede og nyregistrerte komme med på rapporten hvis det er ønskelig.
Datofilteret går mot utlånsdato, øvrige filtere går mot eksemplar og post. 
*/


Lånere - Antall nye lånere i perioden fordelt på lånergruppe

SELECT lg.grp_code as "Lånergruppe", 
count(*) as Antall
FROM loaner key join loaner_group lg
WHERE reg_date >= ':AddFilterFromDate' and reg_date <= ':AddFilterToDate' 
:AddFilter 
group by "Lånergruppe"
order by "Lånergruppe"
/*
Merk at det ikke er mulig å velge ut kun enkelte lånergrupper, alle må vises. 
Statistikken kan kun kjøre når det ikke er noen kryss for lånergrupper, ellers blir det en feilmelding
Når ingen kryss er valgt, vil likevel alle gruppene telles med.
*/