[Koha] Handling SELECT with Empty Input
Guillermo
guillermo.alexhandr at gmail.com
Wed Oct 20 14:15:28 NZDT 2021
Hello, I think the solution is to do it directly from the Mysql command
interface, creating a stored procedure and running it from the Mysql
console.
Developing a modification so that you can do it from the reports GUI
interface is something else.
Ing. Guillermo González
El mar., 19 de oct. de 2021 9:04 p. m., Charles Kelley <
cmkelleymls at gmail.com> escribió:
> Hi, all!
>
> In one of my library's reports, the full SELECT statement reads as
> follows:
>
> SELECT
> items.barcode AS 'Barcode Number'
> ExtractValue(metadata,'//datafield[@tag="092"]/subfield[@code="a"]') AS
> 'Class Number',
> ExtractValue(metadata,'//datafield[@tag="092"]/subfield[@code="b"]') AS
> 'Cutter', items.ccode AS 'Collection', items.location AS 'Shelf Location',
> items.itype AS 'Item Type', items.itemnumber AS 'Item Record Number',
> biblio.biblionumber AS 'Bib Record Number'
> FROM items
> LEFT JOIN biblioitems ON
> (items.biblioitemnumber=biblioitems.biblioitemnumber)
> LEFT JOIN biblio ON (biblioitems.biblionumber=biblio.biblionumber)
> JOIN biblio_metadata ON (biblioitems.biblionumber =
> biblio_metadata.biblionumber)
> WHERE items.dateaccessioned = <<Which day?|date>> AND items.ccode =
> <<Which collection?|ccode>> AND items.location = <<Which shelving
> location?|loc>>
>
> I have a question: On a test run, I forgot to input a date
> (dateaccessioned = <<Which date? ...>) and I got a software error. On the
> next and subsequent runs, I included a date, and it ran perfectly well.
>
> My question is this: is it possible to test for input and substitute a
> default value. With IF, WHILE, etc. statements, program application code
> handles this sort of thing well. SQL, I don't know. It might look like the
> following in pseudo SQL code picking up from the SQL:
>
> WHERE
> (items.dateaccessioned = <<Which collection?|ccode>> BUT
> IF items.dateaccessioned IS NULL THEN items.dateaccessioned =
> TODAY)
> AND (items.ccode = <<Which collection?|ccode>> BUT
> IF items.ccode IS NULL THEN items.ccode = THIS_COLLECTION)
> AND (items.location = <<Which shelving location?|loc>> BUT
> IF items.location IS NULL THEN items.ccode = THIS_LOCATION)
>
> in order to avoid a software error. A conditional input check, so to
> speak.
>
> (BUT, IF, and THEN are my pseudocode extensions to SQL statements.)
>
> I know this is partly built on my limited understanding of SQL and I
> probably hope against hope. That's fine; I'll just make sure the staff are
> taught to select something from the dropdown menus or enter something in
> textboxes if te want to avoid the software error.
>
> If it's possible in a Perl routine or, dare I say, required in a Perl
> routine, I'll try to teach myself enough Perl to do the Perl analog to
> something like this with the understanding that in future editions of Koha,
> the schema and structure may change enough to render the Perl routine
> obsolete.
>
> Thanks, all.
>
> --
>
> 気を付けて。 /ki wo tukete/ = Take care.
>
> -- Charles.
>
> Charles Kelley, MLS
> PSC 704 Box 1029
> APO AP 96338
>
> Charles Kelley
> Tsukimino 1-Chome 5-2
> Tsukimino Gaadenia #210
> Yamato-shi, Kanagawa-ken
> 〒242-0002 JAPAN
>
> +1-301-741-7122 [US cell]
> +81-80-4356-2178 [JPN cell]
>
> mnogojazyk at aol.com [h]
> cmkelleymls at gmail.com [p]
>
> linkedin.com/in/cmkelleymls <http://www.linkedin.com/in/cmkelleymls>
> Meeting Your Information Needs. Virtually.
> _______________________________________________
>
> Koha mailing list http://koha-community.org
> Koha at lists.katipo.co.nz
> Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha
>
More information about the Koha
mailing list