[Koha] Help with a report query

Kerrie Stevens kerrie.stevens at ac.edu.au
Wed Sep 25 12:45:40 NZST 2019


Adding to this report from Carlos below, we have multiple campuses so I'd love to be able to run the report for each campus. I've tried adding in: AND items.homebranch=<<Home branch|branches>> (copied from another report that I can select campuses) in various spots but I keep getting error messages - so I've obviously missed something important somwhere else. Where should I insert this or similar text in the search to be able to select which campus the results are from?

SELECT monthname(datetime) month, type, count(datetime) as count FROM statistics WHERE  YEAR(datetime) = <<year>> AND type IN ('issue', 'renew') GROUP BY month, type ORDER BY month(datetime)

Thanks so much for your help! And thanks Carlos for a handy report. SQL is not my strong-point...


Kerrie Stevens  AALIA(CP), MAppSci(LibMgt), BBus(Info&LibMgt)
Librarian – Melbourne Campus
HDR Liaison Librarian
ALPHACRUCIS COLLEGE

------------------------------

Message: 2
Date: Mon, 23 Sep 2019 21:17:25 -0700
From: Eric Phetteplace <ephetteplace at cca.edu>
To: Carlos Lopez <clopez at dml.vic.edu.au>
Cc: koha <koha at lists.katipo.co.nz>
Subject: Re: [Koha] Help with a report query
Message-ID:
	<CACSkZcYX_qWtUeMJ8bTcdQoaMEz8mm7Mhjni=Jg7hdnyRXhQEQ at mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"

Hi Carlos,

Your report is actually very close to doing that already. Since you're already limiting by year in your WHERE clause, you just need to change it to accept a parameter instead of using YEAR(NOW()). So this should do want you want:

SELECT monthname(datetime) month, type, count(datetime) as count FROM statistics WHERE YEAR(datetime) = <<year>> AND type IN ('issue', 'renew') GROUP BY month, type ORDER BY month(datetime)

That does literally what you asked—limit by a particular calendar year—but you could also limit to within a given date range by asking for two parameters and using a "BETWEEN" WHERE clause like you mentioned earlier.
So that would be like:

SELECT monthname(datetime) month, type, count(datetime) as count FROM statistics WHERE datetime BETWEEN <<start|date>> AND <<finish|date>> AND type IN ('issue', 'renew') GROUP BY month, type ORDER BY month(datetime)

The "|date" bit there means that the reports module will expect date values for those parameters and thus provide a datepicker when people go to run the report. I will caution that I've been advised not to use the "statistics" table, though I don't entirely know why. I would've written this report using the issues and old_issues tables.

Best,

ERIC PHETTEPLACE Systems Librarian (he/him)

ephetteplace at cca.edu | o 510.594.3660

5212 Broadway | Oakland, CA | 94618

:(){ :|: & };:


On Mon, Sep 23, 2019 at 5:51 PM Carlos Lopez <clopez at dml.vic.edu.au> wrote:

> Hi folks
>
> I have the following report query:
> ----
> SELECT monthname(datetime) month, type, count(datetime) as count from 
> statistics where YEAR(datetime) = YEAR(NOW()) and type in ('issue', 
> 'renew') GROUP BY month, type ORDER BY month(datetime)
> ----
>
> This works well but I've been asked to provide a mechanism to select 
> the year to run this for (I would guess similar to the construct " 
> DATE
> (b.dateexpiry)  BETWEEN <<Between (yyyy-mm-dd)|date>> AND <<and 
> (yyyy-mm-dd)|date>>", except selecting only years)
>
> Is it possible to do this? And if so, how?
>
>
> With kind regards from the Dalton McCaughey Library Team
>
> Carlos Lopez
>
> Dalton McCaughey Library | 29 College Crescent, Parkville, VICTORIA 
> 3052
> Ph: 03 9340 8888 ext.1 | library at dml.vic.edu.au | 
> library.dmlibrary.org.au
>
> _______________________________________________
> Koha mailing list  http://koha-community.org Koha at lists.katipo.co.nz 
> https://lists.katipo.co.nz/mailman/listinfo/koha
>



More information about the Koha mailing list