At 08:57 AM 4/22/2014 -0400, Katelyn Browne wrote:
Hi Paul,
Not sure if you've solved this yet--we've been on spring break! I got your report to work by changing the order of the tables joined together. By pulling from authorised_values first (and joining everything to that), you get all possible location values rather than just the ones that appear in biblioitems.

Hi Katelyn,

Many thanks for your reply. With a little assistance and some refining, we ended up with a good working solution (in fact biblioitems was an unnecessary complication) :

SELECT authorised_value AS Auth_Location, COUNT(items.itemnumber)
FROM authorised_values
LEFT JOIN items ON (authorised_values.authorised_value=items.location)
WHERE authorised_values.category LIKE 'loc'
GROUP BY authorised_value HAVING COUNT(DISTINCT(items.itemnumber))=0;

Best regards and again thanks,
Paul


Here's a report that worked for me:

SELECT authorised_values.authorised_value AS Auth_Location,
COUNT(DISTINCT biblioitems.biblionumber) as Quantity
FROM authorised_values
LEFT JOIN items ON (authorised_values.authorised_value=items.location)
LEFT JOIN biblioitems ON (items.biblioitemnumber=biblioitems.biblioitemnumber)
WHERE authorised_values.category LIKE 'loc'
GROUP BY authorised_values.authorised_value HAVING COUNT(DISTINCT biblioitems.biblionumber)=0

--Katelyn.


Katelyn Browne
Middle/High School Librarian
Capital City Public Charter School
100 Peabody Street NW
Washington, DC 20011
(202) 387-0309 x1745
<mailto:[email protected]>[email protected]
http://www.ccpcs.org/library/


On Wed, Apr 16, 2014 at 11:40 AM, Paul A <<mailto:[email protected]>[email protected]> wrote: Help requested, please -- the MySQL part of my brain is obviously not at the right caffeine level.

Over the years, we have used a lot of "shelves" (authorized values, mostly temporary boxes) and now I need to identify the "empty" ones as a cleanup/caretaking excercise.

The following SQL query works syntactically, and finds any shelf with at least one item:

SELECT authorised_values.authorised_value AS Auth_Location,
COUNT(DISTINCT biblioitems.biblionumber) as Quantity
FROM biblioitems
LEFT JOIN items ON (items.biblioitemnumber=biblioitems.biblioitemnumber)
LEFT JOIN authorised_values ON (authorised_values.authorised_value=items.location)
WHERE authorised_values.category LIKE 'loc'
GROUP BY authorised_values.authorised_value HAVING COUNT(DISTINCT biblioitems.biblionumber)>0;

but if I change the final >0 to =0 it fails to find any empty box ;={

I'm sort-of convinced that this comes from JOINing the authorised_values.authorised_value to the items.location (obviously that location no longer exists in items), but am going in circles looking for an alternate method.

Thanks in advance -- Paul


_______________________________________________
Koha mailing list  <http://koha-community.org>http://koha-community.org
<mailto:[email protected]>[email protected]
<http://lists.katipo.co.nz/mailman/listinfo/koha>http://lists.katipo.co.nz/mailman/listinfo/koha


---
Maritime heritage and history, preservation and conservation,
research and education through the written word and the arts.
<http://NavalMarineArchive.com> and <http://UltraMarine.ca>
_______________________________________________
Koha mailing list  http://koha-community.org
[email protected]
http://lists.katipo.co.nz/mailman/listinfo/koha

Reply via email to