Skillnad mellan versioner av "Musik och teaterbiblioteket"

Från Svenska kohanätverkets wiki
Hoppa till navigering Hoppa till sök
m
 
(En mellanliggande sidversion av samma användare visas inte)
Rad 1: Rad 1:
 
Rapport från Musik- och teaterbiblioteket
 
Rapport från Musik- och teaterbiblioteket
 
== SQL-rapporter och statistik ==
 
  
 
== Cirkulation ==
 
== Cirkulation ==
Rad 172: Rad 170:
 
) x
 
) x
 
ORDER BY 1
 
ORDER BY 1
</pre>
 
 
'''Tertialstatistik'''
 
''Lån grupperat per tertial''
 
<pre>
 
SELECT
 
(MONTH(datetime) DIV 4)+1 AS 'Tertial för år 2019',
 
SUM( IF(type = 'issue', 1, 0 )) AS Utlån,
 
SUM( IF(type = 'renew', 1, 0 )) AS Omlån,
 
SUM( IF(type = 'onsite_checkout', 1, 0 )) AS Läsesalslån,
 
SUM( IF(type IN ('issue','renew','onsite_checkout'), 1, 0 )) AS 'Totalt antal transaktioner'
 
FROM  statistics
 
WHERE YEAR(datetime)=2019
 
GROUP BY 1
 
 
</pre>
 
</pre>
  
Rad 199: Rad 183:
 
<p>[%- USE date -%]
 
<p>[%- USE date -%]
 
[% IF date.format(date.now, '%u') == '5' %]
 
[% IF date.format(date.now, '%u') == '5' %]
Du kan hämta material från måndag klockan 13.00.
+
Du kan hämta materialet från klockan 12.00 på måndag.
 
[% ELSIF date.format(date.now, '%u') == '6' %]
 
[% ELSIF date.format(date.now, '%u') == '6' %]
Du kan hämta material från måndag klockan 13.00.
+
Du kan hämta materialet från klockan 12.00 på måndag.
 
[% ELSIF date.format(date.now, '%u') == '7' %]
 
[% ELSIF date.format(date.now, '%u') == '7' %]
Du kan hämta material från måndag klockan 13.00.
+
Du kan hämta materialet från klockan 12.00 på måndag.
 
[% ELSE %]
 
[% ELSE %]
[% IF today.substr(11) < '13:00' %]
+
[% IF today.substr(11) < '12:00' %]
Du kan hämta material från klockan 13.00 idag.
+
Du kan hämta materialet från klockan 12.00 idag.
[% ELSIF today.substr(11) < '15:00' %]
+
[% ELSIF date.format(date.now, '%u') == '4' && today.substr(11) >= '12:00' %]
Du kan hämta material från klockan 15.00 idag.
+
Du kan hämta materialet från klockan 12.00 på måndag.
[% ELSE %]
+
[% ELSE %]
Du kan hämta material från klockan 13.00 imorgon.  
+
Du kan hämta materialet från klockan 10.00 imorgon.
 
[% END %]
 
[% END %]
[% END %]
+
[% END %]</br></br>
</br></br>
 
 
Titel: <<biblio.title>></br>
 
Titel: <<biblio.title>></br>
 
Författare: <<biblio.author>></br>
 
Författare: <<biblio.author>></br>
Rad 222: Rad 205:
 
<p>Hälsningar,</br>
 
<p>Hälsningar,</br>
 
Musik- och teaterbiblioteket<br />
 
Musik- och teaterbiblioteket<br />
 +
<<branches.branchemail>></br>
 
<<branches.branchphone>><br />
 
<<branches.branchphone>><br />
<<branches.branchurl>></p>
+
<<branches.branchurl>><br />
 +
Hållplats: Frihamnsporten. Bussarna 1, 72 och 76 stannar precis utanför. Närmaste t-banestation är Gärdet och Karlaplan.</p>
 
</span>
 
</span>
 
</pre>
 
</pre>
Rad 258: Rad 243:
  
 
[% IF (borrower.categorycode == "ILL" && borrower.lang == "en") %]
 
[% IF (borrower.categorycode == "ILL" && borrower.lang == "en") %]
 +
<<today>>
 
<h2>Fjärrlån att skicka</h2>
 
<h2>Fjärrlån att skicka</h2>
 
<p>Låna ut och skicka till:</br>
 
<p>Låna ut och skicka till:</br>
Rad 264: Rad 250:
 
<<borrowers.address2>></br>
 
<<borrowers.address2>></br>
 
<<borrowers.zipcode>> <<borrowers.city>></br>
 
<<borrowers.zipcode>> <<borrowers.city>></br>
<<country>></b></p>
+
<<country>></b></br>
</br>
+
<<borrowers.phone>></br>
 +
<<borrowers.email>></p>
 +
Cardnumber: <<borrowers.cardnumber>></br>
 
<p>Author: <<biblio.author>></br>
 
<p>Author: <<biblio.author>></br>
 
Title: <<biblio.title>></br>
 
Title: <<biblio.title>></br>
 
Barcode: <<items.barcode>></br>
 
Barcode: <<items.barcode>></br>
 
Item number: <<items.itemcallnumber>></p>
 
Item number: <<items.itemcallnumber>></p>
 +
<p>Note: <<reserves.reservenotes>></p>
 
</br>
 
</br>
 
<h1>Due date:</h1>
 
<h1>Due date:</h1>
Rad 276: Rad 265:
 
If you send a package through the postal service please use our postal  
 
If you send a package through the postal service please use our postal  
 
address:</br>  
 
address:</br>  
Box 16326, 103 26 Stockholm, Sweden</br></br>
+
Box 16326, SE-103 26 Stockholm, Sweden</br></br>  
 
If you use a delivery service, please use the following address:</br>
 
If you use a delivery service, please use the following address:</br>
Lokstallsgatan 9, 113 21 Stockholm, Sweden</p>
+
Tegeluddsvägen 100, SE-115 28 Stockholm, Sweden
  
 
[% ELSIF (borrower.categorycode == "ILL") %]
 
[% ELSIF (borrower.categorycode == "ILL") %]
 +
<<today>>
 
<h2>Fjärrlån att skicka</h2>
 
<h2>Fjärrlån att skicka</h2>
 
<p>Låna ut och skicka till:</br>
 
<p>Låna ut och skicka till:</br>
Rad 286: Rad 276:
 
<<borrowers.address>></br>
 
<<borrowers.address>></br>
 
<<borrowers.address2>></br>
 
<<borrowers.address2>></br>
<<borrowers.zipcode>> <<borrowers.city>></b></p>
+
<<borrowers.zipcode>> <<borrowers.city>></b></br>
</br>
+
<<borrowers.phone>></br>
 +
<<borrowers.email>></p>
 +
Sigel: <<borrowers.cardnumber>></br>
 
<p>Författare: <<biblio.author>></br>
 
<p>Författare: <<biblio.author>></br>
 
Titel: <<biblio.title>></br>
 
Titel: <<biblio.title>></br>
 
Streckkod: <<items.barcode>></br>
 
Streckkod: <<items.barcode>></br>
 
Hyllplats: <<items.itemcallnumber>></p>
 
Hyllplats: <<items.itemcallnumber>></p>
 +
<p>Kommentar: <<reserves.reservenotes>></p>
 
</br>
 
</br>
 
<h1>Återlämningsdatum:</h1>
 
<h1>Återlämningsdatum:</h1>
Rad 297: Rad 290:
 
<p>Musik- och teaterbiblioteket</br>
 
<p>Musik- och teaterbiblioteket</br>
 
Returadress för brev och postpaket:</br>
 
Returadress för brev och postpaket:</br>
Box 16326, 103 26 Stockholm</br></br>
+
Box 16326, 103 26 Stockholm</br></br>  
Returadress för företagspaket:</br>
+
Returadress för företagspaket och andra bud:</br>
Lokstallsgatan 9, 113 21 Stockholm</p>
+
Tegeluddsvägen 100, 115 28 Stockholm
  
 
[% ELSE %]
 
[% ELSE %]

Nuvarande version från 8 november 2021 kl. 13.54

Rapport från Musik- och teaterbiblioteket

Cirkulation

Framtagningslista Egengjord lista för att hämta fram reserverat material då vi har det mesta i magasin.

SELECT *
FROM (SELECT items.location, items.itemcallnumber, biblio.title AS 'Titel', biblio.author AS 'Upphov', biblio.copyrightdate,
      reserves.reservedate AS 'Reservationsdatum', reserves.reservenotes AS 'Kommentar',
      CONCAT_WS(' ', borrowers.firstname, borrowers.surname) AS 'Låntagare',
DENSE_RANK() OVER (PARTITION BY biblio.biblionumber ORDER BY reserves.reservedate ASC, reserves.reserve_id ASC) AS reserveenumeration,
DENSE_RANK() OVER (PARTITION BY biblio.biblionumber ORDER BY 
                   CASE WHEN items.location = 'PjäsHem' THEN '0'
                   WHEN items.location LIKE 'EMS%' THEN CONCAT('2', items.location)
                   WHEN items.location IN ('SVA', 'Referens', 'Rariteter') THEN CONCAT('3', items.location)
                   ELSE CONCAT('1', items.location) END
                   ASC, items.copynumber ASC,items.barcode) AS itemenumeration,
      waitortransit.itemnumber IS NOT NULL AS waitortransit
FROM borrowers INNER JOIN reserves ON borrowers.borrowernumber = reserves.borrowernumber
INNER JOIN biblio ON biblio.biblionumber = reserves.biblionumber
INNER JOIN items ON biblio.biblionumber = items.biblionumber
LEFT OUTER JOIN issues ON issues.itemnumber = items.itemnumber
LEFT OUTER JOIN
      (
      SELECT itemnumber FROM reserves WHERE found IN ('W','T')
      ) AS waitortransit
ON items.itemnumber = waitortransit.itemnumber
WHERE issues.itemnumber IS NULL
AND reserves.suspend = 0
AND (reserves.itemnumber = items.itemnumber OR reserves.itemnumber IS NULL)
AND items.itemlost = '0'
AND COALESCE(reserves.found,'') NOT IN ('W','T')) X
WHERE reserveenumeration = itemenumeration
AND NOT waitortransit
AND (location NOT LIKE 'EMS%' AND location NOT LIKE 'Orkester')
ORDER BY location, itemcallnumber

Statistik

Aktiva låntagare Baserat på att vi anger kön/institution som ett auktoriserat värde som förs in i låntagarposten som borrower attribute.

SELECT
	CASE
		WHEN attr IN ('m','man') THEN 'Man'
		WHEN attr IN ('k','kvinna') THEN 'Kvinna'
		WHEN attr IN ('i','Svensk institution') THEN 'Svensk Institution'
		WHEN attr IN ('u','Utländsk institution') THEN 'Utländsk Institution'
		WHEN attr IN ('-','Ospecificerat') THEN 'Ospecifierat'
		ELSE 'Okänt'
	END AS 'Kategori',
	mdt AS 'Året som lånt senast var aktiv',
	COUNT(*) AS 'Antal låntagare'
FROM
	(
	SELECT
		borrowers.borrowernumber,
		MAX(borrower_attributes.attribute) attr,
		MAX(LEFT(statistics.datetime,4)) mdt
	FROM
		statistics
	INNER JOIN
		borrowers
	ON
		statistics.borrowernumber = borrowers.borrowernumber
	INNER JOIN
		borrower_attributes
	ON
		borrower_attributes.borrowernumber=borrowers.borrowernumber
	WHERE 
		borrower_attributes.code = 'INST'
	GROUP BY 
		borrowernumber
	) borrowerstats
GROUP BY 1,2 ORDER BY 1,2

Registrerade låntagare Baserat på att vi anger kön/institution som ett auktoriserat värde som förs in i låntagarposten som borrower attribute.

SELECT
	CASE
		WHEN attr IN ('m','man') THEN 'Man'
		WHEN attr IN ('k','kvinna') THEN 'Kvinna'
		WHEN attr IN ('i','Svensk institution') THEN 'Svensk Institution'
		WHEN attr IN ('u','Utländsk institution') THEN 'Utländsk Institution'
		WHEN attr IN ('-','Ospecificerat') THEN 'Ospecifierat'
		ELSE 'Okänt'
	END AS 'Kategori',
    COUNT(*) AS 'Antal låntagare'
FROM
	(
	SELECT
		borrowers.borrowernumber,
		MAX(borrower_attributes.attribute) attr
	FROM
		borrowers
	LEFT OUTER JOIN
		borrower_attributes
	ON
		borrower_attributes.borrowernumber=borrowers.borrowernumber
	WHERE 
		COALESCE(borrower_attributes.code = 'INST', borrower_attributes.borrowernumber IS NULL)
	GROUP BY 
		borrowernumber
	) borrowerstats
GROUP BY 1 ORDER BY 1

Nya låntagare

SELECT COUNT(borrowernumber) AS 'Nya låntagare'
FROM borrowers
WHERE YEAR(dateenrolled) = <<Välj år ÅÅÅÅ>> 

Lån fördelat på län Baserat på att vi anger län som ett auktoriserat värde som förs in i låntagarposten som borrower attribute.

SELECT COALESCE(cat," Total") AS cat,loans,loans/MAX(loans) OVER (ORDER BY loans DESC)*100 FROM
(
SELECT
	CASE
		WHEN attr IN ('k') THEN 'Blekinge'
		WHEN attr IN ('w') THEN 'Dalarna'
		WHEN attr IN ('i') THEN 'Gotland'
		WHEN attr IN ('x') THEN 'Gävleborg'
		WHEN attr IN ('n') THEN 'Halland'
		WHEN attr IN ('z') THEN 'Jämtland'
		WHEN attr IN ('f') THEN 'Jönköping'
		WHEN attr IN ('h') THEN 'Kalmar'
		WHEN attr IN ('g') THEN 'Kronoberg'
		WHEN attr IN ('b') THEN 'Norrbotten'
		WHEN attr IN ('m') THEN 'Skåne'
		WHEN attr IN ('a') THEN 'Stockholm'
		WHEN attr IN ('d') THEN 'Södermanland'
		WHEN attr IN ('c') THEN 'Uppsala'
		WHEN attr IN ('s') THEN 'Värmland'
		WHEN attr IN ('1') THEN 'Västerbotten'
		WHEN attr IN ('y') THEN 'Västernorrland'
		WHEN attr IN ('u') THEN 'Västmanland'
		WHEN attr IN ('o') THEN 'Västra Götaland'
		WHEN attr IN ('t') THEN 'Örebro'
		WHEN attr IN ('e') THEN 'Östergötland'
		ELSE 'Okänt'
	END AS cat,
	COUNT(*) AS loans
FROM
	(
	SELECT
		borrowers.borrowernumber,
		MAX(borrower_attributes.attribute) attr
	FROM
		statistics
	INNER JOIN
		borrowers
	ON
		statistics.borrowernumber = borrowers.borrowernumber
	INNER JOIN
		borrower_attributes
	ON
		borrower_attributes.borrowernumber=borrowers.borrowernumber
	WHERE 
		borrower_attributes.code = 'LÄN'
      	AND statistics.datetime BETWEEN <<Välj startdatum|date>> AND <<och slutdatum|date>>
	GROUP BY 
		borrowernumber
	) borrowerstats
GROUP BY 1 WITH ROLLUP
) x
ORDER BY 1

Meddelanden

HOLD-meddelande

Vi har framtagning av material på fasta tider men ibland görs det framtagning tidigare än angivet och då går HOLD-meddelanden ut "för tidigt". Under våren 2020 skrev vi koden under [%- USE date -%] som testar för veckodag och klockslag så att rätt meddelande om när material finns tillgängligt skickas ut.

<span style='font-family:Arial,Helvetica,Serif; color:#000000; font-size:1em;'>
<p>Hej <<borrowers.firstname>> <<borrowers.surname>>,</p>
<p>Det här är ett automatgenererat mejl.</p>
<p>[%- USE date -%]
	[% IF date.format(date.now, '%u') == '5' %]			
		Du kan hämta materialet från klockan 12.00 på måndag.
	[% ELSIF date.format(date.now, '%u') == '6' %]		
		Du kan hämta materialet från klockan 12.00 på måndag.
	[% ELSIF date.format(date.now, '%u') == '7' %]		
		Du kan hämta materialet från klockan 12.00 på måndag.
	[% ELSE %]
		[% IF today.substr(11) < '12:00' %]				
			Du kan hämta materialet från klockan 12.00 idag.
		[% ELSIF date.format(date.now, '%u') == '4' && today.substr(11) >= '12:00' %]	
			Du kan hämta materialet från klockan 12.00 på måndag.
		[% ELSE %]										
			Du kan hämta materialet från klockan 10.00 imorgon.
		[% END %]
	[% END %]</br></br>
Titel: <<biblio.title>></br>
Författare: <<biblio.author>></br>
Hyllplats: <<items.itemcallnumber>></br>
Streckkod: <<items.barcode>>
</p>
<p>Beställt material finns på vänthyllan till <<reserves.expirationdate>>.</p>
<p>Hälsningar,</br>
Musik- och teaterbiblioteket<br />
<<branches.branchemail>></br>
<<branches.branchphone>><br />
<<branches.branchurl>><br />
Hållplats: Frihamnsporten. Bussarna 1, 72 och 76 stannar precis utanför. Närmaste t-banestation är Gärdet och Karlaplan.</p>
</span>

HOLD SLIP

Den här är modifierad utifrån Mellansjös variant.

<!DOCTYPE html>
<html>

  <head>

  <script type="text/javascript">

    
  </script>

  <style>
	<!-- 
        .patronletter { page-break-after: always }
	-->

  </style>
  
  </head>

  <body>

[% USE Branches %]

[% loggedinbranchname = Branches.GetName( Branches.GetLoggedInBranchcode() ) %]
<!-- Superviktigt avsnitt eftersom det gör att man kan få olika texter beroende på om reservationen ska hämtas på det bibliotek man är inloggad som, eller på ett annat bibliotek -->

[% IF (borrower.categorycode == "ILL" && borrower.lang == "en") %]
<<today>>
<h2>Fjärrlån att skicka</h2>
<p>Låna ut och skicka till:</br>
<b><<borrowers.firstname>> <<borrowers.surname>></br>
<<borrowers.address>></br>
<<borrowers.address2>></br>
<<borrowers.zipcode>> <<borrowers.city>></br>
<<country>></b></br>
<<borrowers.phone>></br>
<<borrowers.email>></p>
Cardnumber: <<borrowers.cardnumber>></br>
<p>Author: <<biblio.author>></br>
Title: <<biblio.title>></br>
Barcode: <<items.barcode>></br>
Item number: <<items.itemcallnumber>></p>
<p>Note: <<reserves.reservenotes>></p>
</br>
<h1>Due date:</h1>
</br></br></br></br>
<p>Musik- och teaterbiblioteket</br>
If you send a package through the postal service please use our postal 
address:</br> 
Box 16326, SE-103 26 Stockholm, Sweden</br></br> 
If you use a delivery service, please use the following address:</br>
Tegeluddsvägen 100, SE-115 28 Stockholm, Sweden

[% ELSIF (borrower.categorycode == "ILL") %]
<<today>>
<h2>Fjärrlån att skicka</h2>
<p>Låna ut och skicka till:</br>
<b><<borrowers.firstname>> <<borrowers.surname>></br>
<<borrowers.address>></br>
<<borrowers.address2>></br>
<<borrowers.zipcode>> <<borrowers.city>></b></br>
<<borrowers.phone>></br>
<<borrowers.email>></p>
Sigel: <<borrowers.cardnumber>></br>
<p>Författare: <<biblio.author>></br>
Titel: <<biblio.title>></br>
Streckkod: <<items.barcode>></br>
Hyllplats: <<items.itemcallnumber>></p>
<p>Kommentar: <<reserves.reservenotes>></p>
</br>
<h1>Återlämningsdatum:</h1>
</br></br></br></br>
<p>Musik- och teaterbiblioteket</br>
Returadress för brev och postpaket:</br>
Box 16326, 103 26 Stockholm</br></br> 
Returadress för företagspaket och andra bud:</br>
Tegeluddsvägen 100, 115 28 Stockholm

[% ELSE %]
<h1>Lånekortsnummer: <<borrowers.cardnumber>></h1>
</br></br>
<p><<borrowers.surname>>, <<borrowers.firstname>></br>
<<borrowers.address>><br />
<<borrowers.address2>><br />
<<borrowers.zipcode>> <<borrowers.city>></p>
</br>
<h1>Hyllplats: <<items.itemcallnumber>></h1>
</br>
<p>Författare: <<biblio.author>></br>
Titel: <<biblio.title>></p>
</br>
<p>Meddelande: <<reserves.reservenotes>></p>
</br>
<p>På vänthylla sen: <<reserves.waitingdate>></br>
<b>Hämtas senast: <<reserves.expirationdate>></b></p> 
</br>
<h1><b><<borrowers.surname>>, <<borrowers.firstname>></b></h1>

[% END %]