[Koha] SQL Report help
Jeramey Valley
valleyj at bcreek.org
Sat Apr 25 06:10:59 NZST 2015
Thanks so much, was exactly what I needed.
Final solution:
SELECT p.cardnumber, p.surname, p.firstname,
DATE_FORMAT(c.issuedate, "%m/%d/%Y") AS Issue_Date, DATE_FORMAT(c.date_due, "%m/%d/%Y") AS Due_Date, h.attribute AS teacher,
(TO_DAYS(curdate())-TO_DAYS( date_due)) AS 'days overdue',
b.title, b.author, i.itemcallnumber, i.replacementprice, ExtractValue(bi.marcxml,'//datafield[@tag="020"]/subfield[@code="c"]') AS price, b.biblionumber, i.barcode
FROM borrowers p
LEFT JOIN issues c ON (p.borrowernumber=c.borrowernumber)
LEFT JOIN items i ON (c.itemnumber=i.itemnumber)
LEFT JOIN biblio b ON (i.biblionumber=b.biblionumber)
LEFT JOIN borrower_attributes g ON (p.borrowernumber=g.borrowernumber)
LEFT JOIN borrower_attributes h ON (p.borrowernumber=h.borrowernumber)
LEFT JOIN biblioitems bi ON (b.biblionumber = bi.biblionumber)
WHERE c.branchcode = <<Branch|branches>> AND (TO_DAYS(curdate())-TO_DAYS(
date_due)) >= <<Days overdue>> AND h.code="HOMEROOM"
ORDER BY g.attribute, h.attribute, p.surname ASC
--
Regards,
Jeramey Valley
Network Manager, Bullock Creek Schools
valleyj at bcreek.org
> On Apr 24, 2015, at 2:04 PM, Barton Chittenden <barton at bywatersolutions.com> wrote:
>
> Jeremy,
>
> You can join biblioitems to biblio using biblionumber. Add this right
> before your WHERE clause:
>
> LEFT JOIN biblioitems bi ON (b.biblionumber = bi.biblionumber)
>
> Once you've done that, you can add
>
> b.biblionumber,
> ExtractValue(bi.marcxml,'//datafield[@tag="020"]/subfield[@code="c"]')
> AS heading
>
> As fields to SELECT,
>
> Then add
>
> AND length(ExtractValue(bi.marcxml,
> '//datafield[@tag="020"]/subfield[@code="c"]')) != 0
>
> as part of your WHERE clause.
>
> I'll let you work out the 'order by' part - you'll know better than I
> will how you want your results ordered.
>
> --Barton
>
> On Fri, Apr 24, 2015 at 1:44 PM, Jeramey Valley <valleyj at bcreek.org> wrote:
>> Sure there’s a simple solution, not very good with SQL…
>>
>> This query works great:
>>
>> SELECT p.cardnumber, p.surname, p.firstname,
>> DATE_FORMAT(c.issuedate, "%m/%d/%Y") AS Issue_Date, DATE_FORMAT(c.date_due, "%m/%d/%Y") AS Due_Date, h.attribute AS teacher,
>> (TO_DAYS(curdate())-TO_DAYS( date_due)) AS 'days overdue',
>> b.title, b.author, i.itemcallnumber, i.replacementprice,
>> i.barcode
>> FROM borrowers p
>> LEFT JOIN issues c ON (p.borrowernumber=c.borrowernumber)
>> LEFT JOIN items i ON (c.itemnumber=i.itemnumber)
>> LEFT JOIN biblio b ON (i.biblionumber=b.biblionumber)
>> LEFT JOIN borrower_attributes g ON (p.borrowernumber=g.borrowernumber)
>> LEFT JOIN borrower_attributes h ON (p.borrowernumber=h.borrowernumber)
>> WHERE c.branchcode = <<Branch|branches>> AND (TO_DAYS(curdate())-TO_DAYS(
>> date_due)) >= <<Days overdue>> AND h.code="HOMEROOM"
>> ORDER BY g.attribute, h.attribute, p.surname ASC
>>
>>
>> I need to also add to the above:
>>
>> SELECT biblionumber, ExtractValue(marcxml,'//datafield[@tag="020"]/subfield[@code="c"]') AS heading
>> FROM biblioitems
>> WHERE length(ExtractValue(marcxml, '//datafield[@tag="020"]/subfield[@code="c"]')) != 0
>> ORDER BY heading
>>
>> Basically need to combine the two, how to do so?
>>
>> --
>>
>> Regards,
>>
>> Jeramey Valley
>> Network Manager, Bullock Creek Schools
>> valleyj at bcreek.org
>>
>>
>>
>>
>> _______________________________________________
>> Koha mailing list http://koha-community.org
>> Koha at lists.katipo.co.nz
>> http://lists.katipo.co.nz/mailman/listinfo/koha
More information about the Koha
mailing list