├── 001andnot003.sql ├── 1query.sql ├── ALThtmpm.sql ├── BDLPatronquery.sql ├── BDitemslongloanperiod.sql ├── BFcirc.sql ├── LabelsScratch.sql ├── README.md ├── _config.yml ├── allbibs.sql ├── allusersallprinters.sql ├── almostgotit.sql ├── badsubfieldtags.sql ├── badtotals.sql ├── barcode2irecnum.sql ├── barcodenotpipeZ.sql ├── bib-order-fund.sql ├── bibholds.sql ├── bibid2recnum.sql ├── bibnum2itemnum.sql ├── bibrecords.sql ├── bibvarfields.sql ├── blanksubfieldS.sql ├── boundwiths.sql ├── brecnum+recid.sql ├── byfund.sql ├── callnumbercircreport.sql ├── candelaria.sql ├── circtrans.sql ├── clem.sql ├── clrsa.sql ├── controlfieldF.sql ├── countexpiringholds.sql ├── coursereserves.sql ├── coursereserves2.sql ├── currentqueries.sql ├── dartid2recid.sql ├── desktopoptions.sql ├── dhmcnonloading.sql ├── duplicatebarcodes.sql ├── dupmarcfields.sql ├── dvdcallnum.sql ├── examplequery.sql ├── faileddup050search.sql ├── feedbuilder.sql ├── feldbergcheckouts.sql ├── find405-5-d.sql ├── findoclcnums.sql ├── genfeedbuilder.sql ├── hasholds.sql ├── hathitrust.sql ├── htmpm.sql ├── htmpm2016.sql ├── htmpm2017.sql ├── htserials.sql ├── htserials2016.sql ├── htserials2018.sql ├── htspm.sql ├── htspm2.sql ├── htspm2016.sql ├── indexedfields.sql ├── initials+group.sql ├── invoicenum_chartstring.sql ├── itemcountsbyitype.sql ├── itemsWmanybibs.sql ├── itemsthathavebeenonreserve.sql ├── kresgeisbn.sql ├── labels.sql ├── laddquery.sql ├── lastautovac.sql ├── leachquery.sql ├── loanruledet.sql ├── loanrulemodeller.sql ├── locationnotinbiboritem.sql ├── lotsofitems.sql ├── lowuselocs.sql ├── marctagcounts.sql ├── miloptions.sql ├── mostcirculated.sql ├── multiplesubfieldbs.sql ├── multvarfieldssamevalue.sql ├── needezproxy.sql ├── newcirctrans.sql ├── newhtspm.sql ├── orphanedrecords.sql ├── patronreadinghistory.sql ├── patronswithspaces.sql ├── patronuid2recid.sql ├── patwithodues.sql ├── printerusers.sql ├── priv-renewloanrule.sql ├── privhasholds.sql ├── qtl.sql ├── readinghistory.sql ├── recentsbyselector.sql ├── savemsmnewordershsci.sql ├── scratch.sql ├── serialsforeric.sql ├── showdbbloat.sql ├── showdbbloat2.sql ├── sierrabuilt.sql ├── skipnumvsind2.sql ├── sortboolbyupdateddate.sql ├── spanlangfilms.sql ├── spanlangfilmscopy.sql ├── t-tagNo245.sql ├── update.sql ├── userpermissions.sql └── zerocheckouts.sql /001andnot003.sql: -------------------------------------------------------------------------------- 1 |  2 | 3 | SELECT id2reckey(record_id) recnum, 4 | v.marc_tag || ' ' || v.field_content namedfield 5 | 6 | FROM 7 | sierra_view.varfield v JOIN sierra_view.record_metadata r on v.record_id = r.id 8 | 9 | WHERE 10 | r.record_type_code = 'b' 11 | AND v.marc_tag = '001' 12 | OR v.marc_tag = '003' 13 | 14 | ORDER by namedfield -------------------------------------------------------------------------------- /1query.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joemontibello/iii-sql-queries/4cc9efaa9a0c9a1c946826afa38ca5e2d9d68e18/1query.sql -------------------------------------------------------------------------------- /ALThtmpm.sql: -------------------------------------------------------------------------------- 1 |  --requires privileged account to access iiirecord schema. 2 | --select * from ( 3 | --Stuck on pulling the 001 with ^o at the same time as marc_tag=300 and field_content Doesn't have p in it... 4 | SELECT distinct 5 | varfield.field_content, 6 | -- case when varfield.marc_tag = '001' then varfield.field_content else NULL end as ocnum, 7 | 'b' || record_metadata.record_num as record_num 8 | -- bib_record_view.bcode1 as mat_type, 9 | -- bib_record_view.bcode2 as source, 10 | -- bib_record_view.bcode3 as bib_status, 11 | -- bib_record_view.cataloging_date 12 | FROM 13 | (select * from iiirecord.bib_record where 14 | --bib_record.bcode3 ~ '[^cdefgijklnopqrstuvw]' -- bib status not within c-g or i-l or n-w 15 | bib_record.bcode3 in ('-','h','m','u','x') 16 | AND bib_record.bcode1 = 'a' -- bib mat type = a 17 | ) as bib_record 18 | --iiirecord.bib_record 19 | join iiirecord.record_metadata on bib_record.id = record_metadata.id AND record_metadata.record_type = 'b' 20 | join (select * from iiirecord.varfield where (varfield.marc_tag = '001' or varfield.marc_tag = '300')) as varfield on varfield.record_id = bib_record.id 21 | join iiirecord.leader_field on leader_field.record_id = bib_record.id 22 | join iiirecord.bib_record_item_record_link on bib_record.id = bib_record_item_record_link.bib_record_id 23 | join iiirecord.bib_record_holding_record_link on bib_record.id = bib_record_holding_record_link.bib_record_id, 24 | iiirecord.item_record, 25 | iiirecord.holding_record, 26 | iiirecord.holding_record_location 27 | WHERE 28 | item_record.id = bib_record_item_record_link.item_record_id 29 | AND holding_record.id = holding_record_location.holding_record_id 30 | AND (item_record.status = 'h' OR holding_record_location.location_code != 'none') 31 | AND leader_field.record_type_code = 'a' --bib rec type = a 32 | AND leader_field.bib_level_code = 'm'--bib levl = m 33 | -- AND bib_record.bcode3 ~ '[^cdefgijklnopqrstuvw]' -- bib status not within c-g or i-l or n-w 34 | -- AND bib_record.bcode1 = 'a' -- bib mat type = a 35 | -- AND bib_record.bcode2 ~ '[^cdefg]' -- bib source not within c and g. 36 | -- AND bib_record.bcode2 not in ('c','d','e','f','g') 37 | AND (varfield.marc_tag = '001' AND (varfield.field_content ~ '^o' OR varfield.field_content ~ '^[\d]+$')) 38 | AND EXISTS ( Select 1 39 | from iiirecord.varfield 40 | where 41 | varfield.marc_tag = '300' 42 | and not varfield.field_content like 'p' 43 | and varfield.record_id = bib_record.id) 44 | --AND -- (item status = h or checkin loc != 'none') 45 | -------------------------------------------------------------------------------- /BDLPatronquery.sql: -------------------------------------------------------------------------------- 1 | --Query pulls together things that have an LPatron value for a patron that has ptype 34 2 | --so all things where the previous checkout was to a BD library should be pulled. 3 | 4 | SELECT 5 | patron_record_fullname.last_name, 6 | bib_view.title, 7 | bib_view.record_num AS bibrecordnumber, 8 | item_record.last_checkin_gmt as lastcheckin, 9 | item_circ_history.patron_record_metadata_id as Currentpatron 10 | FROM 11 | sierra_view.item_record, 12 | sierra_view.record_metadata, 13 | sierra_view.patron_view, 14 | sierra_view.patron_record_fullname, 15 | sierra_view.bib_record_item_record_link, 16 | sierra_view.bib_view, 17 | sierra_view.item_circ_history 18 | WHERE 19 | item_record.last_patron_record_metadata_id = record_metadata.id AND 20 | patron_view.record_num = record_metadata.record_num AND 21 | patron_record_fullname.patron_record_id = patron_view.id AND 22 | bib_record_item_record_link.item_record_id = item_record.record_id AND 23 | bib_record_item_record_link.bib_record_id = bib_view.id AND 24 | patron_view.ptype_code = '34'AND 25 | cast (last_checkin_gmt as date) > cast ('2015-04-01' as date) 26 | 27 | ORDER BY 28 | item_record.last_checkin_gmt DESC; 29 | -------------------------------------------------------------------------------- /BDitemslongloanperiod.sql: -------------------------------------------------------------------------------- 1 | --Used this to look for Borrow Direct items that had more than 90 days 2 | --between their out date and their due date. I found only a few, and 3 | --none more than 95 days different. 4 | SELECT * 5 | from 6 | iiirecord.item_record, 7 | iiirecord.checkout, 8 | iiirecord.patron_record, 9 | iiirecord.patron_record_fullname 10 | where 11 | patron_record.id = patron_record_fullname.patron_record_id AND 12 | checkout.patron_record_id = patron_record.id AND 13 | checkout.item_record_id = item_record.id AND 14 | item_record.virtual_type is distinct from null AND 15 | date(checkout.due_gmt) - date(checkout.checkout_gmt) > 90 -------------------------------------------------------------------------------- /BFcirc.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | bv.title, 3 | bv.record_num AS bib_num, 4 | ct.*, 5 | irp.call_number 6 | FROM 7 | sierra_view.circ_trans ct, 8 | sierra_view.item_record_property irp, 9 | sierra_view.bib_view bv 10 | WHERE bv.id = ct.bib_record_id 11 | AND irp.item_record_id = ct.item_record_id 12 | AND ct.op_code = 'o' 13 | AND irp.call_number LIKE '|aBF%' 14 | ORDER BY transaction_gmt -------------------------------------------------------------------------------- /LabelsScratch.sql: -------------------------------------------------------------------------------- 1 | SELECT bib_view.record_num --Need more data fields 2 | FROM sierra_view.bib_view, sierra_view.varfield 3 | WHERE 4 | bib_view.id = varfield.record_id AND 5 | varfield.varfield_type_code = 'b'AND 6 | (( bib_view.bcode2 != 'g' AND -- bib source 7 | bib_view.bcode3 != 'b' AND -- bib status 8 | date(bib_view.cataloging_date_gmt) = current_date - 1) OR --cat date - need to change this to run as current date and schedule it before end of day. 9 | (varfield.marc_tag ='955' AND 10 | varfield.field_content LIKE '|u+l 150226') OR -- after |u+l allow for zero or more digits before the space. 11 | (varfield.marc_tag = '950' AND 12 | varfield.field_content LIKE '|i150226')) ; --doesn't sort 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # iii-sql-queries 2 | A collection of SQL queries for our Sierra db. 3 | 4 | These SQL queries were created on an ad-hoc basis. Some are well-commented, others not so much. But at least if they're here, they're under version control, so there's that... 5 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /allbibs.sql: -------------------------------------------------------------------------------- 1 | select record_num 2 | From sierra_view.bib_view 3 | where 4 | bcode3 = '-' 5 | OR bcode3 = 'm' 6 | or bcode3 = 'x' -------------------------------------------------------------------------------- /allusersallprinters.sql: -------------------------------------------------------------------------------- 1 | -- Requires elevated privilege. 2 | -- this file searches for library staff members whose logins 3 | -- have been assigned printer numbers 3 and/or 4. 4 | select iii_user.name, 5 | iii_user.full_name, 6 | --printer_name.name, 7 | printer_name.*, 8 | iii_user_printer.* 9 | from 10 | iiienv.iii_user_printer left join sierra_view.iii_user on iii_user_printer.iii_user_id = iii_user.id, 11 | iiienv.printer_name 12 | 13 | Where iii_user_printer.printer_code_num = printer_name.printer_id 14 | 15 | --Where printer_code_num > '2' and printer_code_num <= '4' 16 | 17 | ORDER by printer_code_num -------------------------------------------------------------------------------- /almostgotit.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | order_record_cmf.fund_code, 3 | order_record_cmf.order_record_id, 4 | bib_view.title 5 | FROM 6 | sierra_view.order_record_cmf, 7 | sierra_view.fund_master, 8 | sierra_view.order_record, 9 | sierra_view.bib_record_order_record_link, 10 | sierra_view.bib_view 11 | WHERE 12 | CAST (order_record_cmf.fund_code AS INTEGER) = fund_master.code_num AND 13 | order_record.record_id = order_record_cmf.order_record_id AND 14 | order_record.record_id = bib_record_order_record_link.order_record_id AND 15 | bib_record_order_record_link.bib_record_id = bib_view.id AND 16 | fund_master.code LIKE '1920'; 17 | -------------------------------------------------------------------------------- /badsubfieldtags.sql: -------------------------------------------------------------------------------- 1 | -- Find subfield tags that are not 2 | -- a-z or 0-9, and return record numbers. 3 | 4 | SELECT id2reckey(record_id) recnum, 5 | marc_tag, 6 | tag, 7 | content 8 | 9 | FROM 10 | sierra_view.subfield s 11 | WHERE 12 | s.tag !~ '[a-z 0-9]' 13 | ORDER BY recnum -------------------------------------------------------------------------------- /badtotals.sql: -------------------------------------------------------------------------------- 1 | select distinct 2 | 'i' || record_metadata.record_num || 'a' as record_num, 3 | bib_record_property.best_title, 4 | item_record.checkout_total, 5 | item_record.year_to_date_checkout_total, 6 | item_record.last_year_to_date_checkout_total, 7 | item_record.save_checkout_total 8 | from 9 | sierra_view.item_record join sierra_view.bib_record_item_record_link on item_record.id = bib_record_item_record_link.item_record_id, 10 | sierra_view.bib_record_property, 11 | sierra_view.record_metadata 12 | --sierra_view.varfield 13 | where 14 | --varfield.record_id = item_record.id 15 | --and (select not exists(select 1 from sierra_view.varfield where varfield.varfield_type_code = 'r')) 16 | item_record.checkout_total < (item_record.year_to_date_checkout_total + item_record.last_year_to_date_checkout_total) 17 | and bib_record_property.bib_record_id = bib_record_item_record_link.bib_record_id 18 | and (record_metadata.record_type_code = 'i'and record_metadata.id = item_record.id) 19 | and item_record.save_checkout_total is not distinct from null -------------------------------------------------------------------------------- /barcode2irecnum.sql: -------------------------------------------------------------------------------- 1 | -- replace the barcode in the last line with the barcode you want to search for 2 | -- and you'll get the record number for that record. Might be useful 3 | -- if used repetitively to iterate over a file of barcodes (from a scanner), 4 | -- then import the record numbers into a review file. 5 | SELECT 6 | record_metadata.record_num 7 | FROM 8 | sierra_view.item_record_property, 9 | sierra_view.record_metadata 10 | WHERE 11 | record_metadata.id = item_record_property.item_record_id 12 | AND item_record_property.barcode = '|z33312001032689' 13 | -------------------------------------------------------------------------------- /barcodenotpipeZ.sql: -------------------------------------------------------------------------------- 1 | SELECT 'i' || record_num || 'a' 2 | FROM sierra_view.item_view 3 | WHERE barcode not like '|z%' 4 | and barcode != '' 5 | -------------------------------------------------------------------------------- /bib-order-fund.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | order_record_cmf.fund_code, 3 | order_record_cmf.order_record_id, 4 | bib_view.title, 5 | bib_view.record_num 6 | FROM 7 | sierra_view.order_record_cmf, 8 | sierra_view.fund_master, 9 | sierra_view.order_record, 10 | sierra_view.bib_record_order_record_link, 11 | sierra_view.bib_view 12 | WHERE 13 | CAST (order_record_cmf.fund_code AS INTEGER) = fund_master.code_num AND 14 | order_record.record_id = order_record_cmf.order_record_id AND 15 | order_record.record_id = bib_record_order_record_link.order_record_id AND 16 | bib_record_order_record_link.bib_record_id = bib_view.id AND 17 | fund_master.code LIKE '1920'; 18 | -------------------------------------------------------------------------------- /bibholds.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | id2reckey(hold.patron_record_id) patron, 3 | id2reckey(hold.record_id) recordID, 4 | id2reckey(bib_record_item_record_link.item_record_id) 5 | 6 | FROM 7 | sierra_view.hold, 8 | sierra_view.bib_record_item_record_link 9 | 10 | WHERE 11 | status='0' 12 | AND id2reckey(hold.record_id) LIKE 'b%' 13 | AND hold.record_id = bib_record_item_record_link.bib_record_id 14 | 15 | ORDER BY recordID -------------------------------------------------------------------------------- /bibid2recnum.sql: -------------------------------------------------------------------------------- 1 | --bib_record.id to bib_view.record_num 2 | (SELECT bib_view.record_num FROM sierra_view.bib_view WHERE bib_view.id = '420909901269') -------------------------------------------------------------------------------- /bibnum2itemnum.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | 'i' || item_view.record_num as item_num 3 | 4 | FROM 5 | sierra_view.bib_record_item_record_link, 6 | sierra_view.bib_view, 7 | sierra_view.item_view 8 | 9 | WHERE 10 | bib_view.id = bib_record_item_record_link.bib_record_id 11 | AND item_view.id = bib_record_item_record_link.item_record_id 12 | AND bib_view.record_num = '4352044' -------------------------------------------------------------------------------- /bibrecords.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | bib_record.record_id, 3 | varfield.marc_tag, 4 | varfield.marc_ind1, 5 | varfield.marc_ind2, 6 | varfield.occ_num, 7 | varfield.field_content 8 | FROM 9 | sierra_view.bib_record left join sierra_view.varfield on (varfield.record_id = bib_record.record_id), varfield_type 10 | WHERE 11 | varfield_type.record_type_code = 'b' AND 12 | varfield_type.record_type_code = varfield.varfield_type_code AND 13 | varfield.marc_tag IS DISTINCT FROM NULL 14 | 15 | ; 16 | -------------------------------------------------------------------------------- /bibvarfields.sql: -------------------------------------------------------------------------------- 1 | SELECT varfield.* from 2 | sierra_view.bib_record inner join sierra_view.varfield on bib_record.id = varfield.record_id 3 | WHERE 4 | bib_record.id = (Select reckey2id('b1312824') ) -------------------------------------------------------------------------------- /blanksubfieldS.sql: -------------------------------------------------------------------------------- 1 | select item_view.barcode 2 | FROM 3 | sierra_view.item_view 4 | LEFT JOIN sierra_view.varfield ON item_view.id = varfield.record_id 5 | 6 | WHERE 7 | item_view.location_code LIKE '_x%' 8 | AND varfield.marc_tag = '950' 9 | AND varfield.varfield_type_code = 's' 10 | AND varfield.field_content = '|s' -------------------------------------------------------------------------------- /boundwiths.sql: -------------------------------------------------------------------------------- 1 | Select distinct id2reckey(item_record_id) 2 | FROM 3 | sierra_view.bib_record_item_record_link 4 | Group by item_record_id 5 | HAVING count(bib_record_id) > 1 6 | Order by id2reckey(item_record_id) -------------------------------------------------------------------------------- /brecnum+recid.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | bib_record.record_id, 3 | record_metadata.record_num 4 | FROM 5 | sierra_view.bib_record, 6 | sierra_view.record_metadata 7 | WHERE 8 | bib_record.record_id = record_metadata.id 9 | and record_metadata.record_type_code = 'b' 10 | and record_metadata.record_num = '4451800' -------------------------------------------------------------------------------- /byfund.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | order_record_cmf.fund_code, 3 | order_record_cmf.order_record_id, 4 | bib_view.title 5 | FROM 6 | sierra_view.order_record_cmf, 7 | sierra_view.fund_master, 8 | sierra_view.order_record, 9 | sierra_view.bib_record_order_record_link, 10 | sierra_view.bib_view 11 | WHERE 12 | CAST (order_record_cmf.fund_code AS INTEGER) = fund_master.code_num AND 13 | order_record.record_id = order_record_cmf.order_record_id AND 14 | order_record.record_id = bib_record_order_record_link.order_record_id AND 15 | bib_record_order_record_link.bib_record_id = bib_view.id AND 16 | fund_master.code LIKE '1920'; 17 | -------------------------------------------------------------------------------- /callnumbercircreport.sql: -------------------------------------------------------------------------------- 1 |  2 | SELECT 3 | index_entry callNumber, 4 | id2reckey(bib_record.id) bibnumber, 5 | id2reckey(item_record.id) itemnumber, 6 | bib_record.cataloging_date_gmt catdate, 7 | item_record.year_to_date_checkout_total, 8 | item_record.last_year_to_date_checkout_total, 9 | item_record.checkout_total, 10 | item_record.last_checkout_gmt, 11 | item_record.location_code 12 | 13 | FROM 14 | sierra_view.phrase_entry, 15 | sierra_view.bib_record, 16 | sierra_view.bib_record_item_record_link, 17 | sierra_view.item_record 18 | 19 | WHERE 20 | --phrase_rule_rule_num = '2' 21 | phrase_entry.index_tag = 'c' 22 | AND index_entry ~ '^b\s+\d+.*' 23 | AND phrase_entry.record_id = bib_record_item_record_link.bib_record_id 24 | AND bib_record.id = bib_record_item_record_link.bib_record_id 25 | AND item_record.record_id = bib_record_item_record_link.item_record_id 26 | 27 | ORDER by callnumber 28 | -------------------------------------------------------------------------------- /candelaria.sql: -------------------------------------------------------------------------------- 1 | --candalaria's query 2 | SELECT 3 | id2reckey(bib_record.id), 4 | field.marc_tag, 5 | field.marc_ind1, 6 | field.marc_ind2, 7 | field.field_content 8 | FROM 9 | sierra_view.bib_record 10 | INNER JOIN sierra_view.varfield AS field 11 | ON field.record_id = bib_record.id 12 | 13 | WHERE 14 | bib_record.id IN 15 | ( 16 | SELECT DISTINCT(sierra_view.bib_record.id) 17 | FROM 18 | sierra_view.bib_record 19 | INNER JOIN sierra_view.bib_record_location 20 | ON sierra_view.bib_record_location.bib_record_id =sierra_view.bib_record.id 21 | INNER JOIN sierra_view.bib_record_property 22 | ON sierra_view.bib_record_property.bib_record_id =sierra_view.bib_record.id 23 | WHERE 24 | bcode3 != 'n' AND 25 | bcode3 != 'f' AND 26 | bcode3 != 'p' AND 27 | bcode3 != 'e' AND 28 | bcode3 != 's' AND 29 | bcode3 != 'x' AND 30 | ( 31 | material_code = 'a' OR 32 | material_code = 'l' OR 33 | material_code = '@' OR 34 | material_code = 'i' OR 35 | material_code = 'r' OR 36 | material_code = 'g' OR 37 | material_code = 's' 38 | ) AND 39 | ( 40 | location_code = 'w' OR 41 | location_code = 'wac' OR 42 | location_code = 'wbc' OR 43 | (location_code > 'b' AND location_code < 'bzzzz') 44 | ) 45 | ) 46 | ORDER BY 47 | bib_record.id, marc_tag; -------------------------------------------------------------------------------- /circtrans.sql: -------------------------------------------------------------------------------- 1 | --Working from the circ_transaction table to pull data on what has been checked out recently. 2 | --problems: breaking things out by subject doesn't work at this point because the 3 | --call numbers are not all in one table. Also, the data spans the past two weeks or so - 4 | --we'd want more than that (at least one month). 5 | SELECT 6 | bib_view.title, 7 | bib_view.record_num, 8 | item_record_property.call_number, 9 | item_record_property.call_number_norm, 10 | varfield_view.field_content 11 | FROM 12 | sierra_view.circ_trans, 13 | sierra_view.item_record_property, 14 | sierra_view.item_record, 15 | sierra_view.bib_record_item_record_link, 16 | sierra_view.bib_view, 17 | sierra_view.varfield_view 18 | WHERE 19 | circ_trans.item_record_id = item_record.id 20 | AND item_record.id = bib_record_item_record_link.item_record_id 21 | AND bib_view.id = bib_record_item_record_link.bib_record_id 22 | AND item_record.id = item_record_property.item_record_id 23 | AND varfield_view.record_type_code = 'b' 24 | AND varfield_view.record_id = bib_view.id 25 | AND varfield_view.varfield_type_code = 'c' 26 | --AND pcode3 = '89' 27 | -------------------------------------------------------------------------------- /clem.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | -- bib_record.record_id as bid, -- We need this id to connect bib_record to record_metadata 3 | '.b' || record_metadata.record_num || 'a' as bnum, -- I added in the '.b' at the beginning and 'a' (in place of the check digit) at the end so it looks more like a normal bib rec number. 4 | bib_record_location.location_code as bloc, 5 | -- bib_record_location.display_order, -- we need this value because (I think) we want the first bib location listed. In records I checked, "multi" was the first displayed bib location 6 | -- order_record.record_id as oid, - We need this id to connect bib_record through order_record to order_record_cmf 7 | order_record_cmf.copies, 8 | order_record_cmf.location_code || '(' || order_record_cmf.copies || ')' as LocCopy, -- concatenating fields to format the column's data 9 | varfield.field_content as varcontent -- this is the data from whatever field is specified in the last line of the where statements (z field or n field) 10 | 11 | FROM 12 | sierra_view.bib_record, -- the bib record 13 | sierra_view.record_metadata, -- has record_num that we need for the lookup 14 | sierra_view.bib_record_location, --bib location field 15 | sierra_view.order_record, -- needed to connect to order_record_cmf 16 | sierra_view.bib_record_order_record_link, --connects bib and order records 17 | sierra_view.order_record_cmf, -- has the location/copy data we want 18 | sierra_view.varfield --has the (z or n) field 19 | WHERE 20 | bib_record.record_id = record_metadata.id 21 | and record_metadata.record_type_code = 'b' 22 | -- and record_metadata.record_num = '4451800' 23 | and bib_record_location.bib_record_id = bib_record.record_id 24 | and bib_record_location.display_order = '0' 25 | and bib_record_order_record_link.bib_record_id = bib_record.record_id 26 | and bib_record_order_record_link.order_record_id = order_record.record_id 27 | and order_record_cmf.order_record_id = order_record.record_id 28 | and varfield.record_id = order_record.record_id 29 | and varfield.varfield_type_code = 'n' -- change to 'z' for Eddie's original question. If the (z or n) field is empty the query doesn't return a record. 30 | and order_record.order_status_code = 'o' 31 | -------------------------------------------------------------------------------- /clrsa.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT id2reckey(bib_record.id), 2 | record_metadata.creation_date_gmt 3 | 4 | FROM 5 | sierra_view.order_record JOIN sierra_view.order_record_cmf ON order_record.id = order_record_cmf.order_record_id, 6 | sierra_view.bib_record_order_record_link, 7 | sierra_view.bib_record, 8 | sierra_view.fund_master, 9 | sierra_view.record_metadata 10 | WHERE 11 | bib_record.id = bib_record_order_record_link.bib_record_id 12 | AND reckey2id('b' || CAST (record_metadata.record_num AS integer)) = order_record.id 13 | AND order_record.id = bib_record_order_record_link.order_record_id 14 | AND CAST (order_record_cmf.fund_code AS INTEGER) = fund_master.code_num 15 | AND fund_master.code = 'clrsa' 16 | -------------------------------------------------------------------------------- /controlfieldF.sql: -------------------------------------------------------------------------------- 1 | select 2 | record_metadata.record_num, 3 | control_field.p28 4 | from iiirecord.bib_record, iiirecord.control_field, iiirecord.record_metadata 5 | where bib_record.record_id = control_field.record_id 6 | and bib_record.record_id = record_metadata.id 7 | and record_metadata.record_type = 'b' 8 | and control_field.p28 = 'f' 9 | limit 20 -------------------------------------------------------------------------------- /countexpiringholds.sql: -------------------------------------------------------------------------------- 1 | --Counts the number of holds that expire today. 2 | --Presumably, once the holdshelf is cleared and items that 3 | --expire are checked in, this number should be zero. 4 | 5 | SELECT COUNT(*) from 6 | sierra_view.hold 7 | WHERE 8 | to_char(now(), 'YYYY-MM-DD') = to_char(expires_gmt, 'YYYY-MM-DD') 9 | -------------------------------------------------------------------------------- /coursereserves.sql: -------------------------------------------------------------------------------- 1 | Select 2 | sierra_view.id2reckey(course_view.id) as course_record_id, 3 | course_view.begin_date, 4 | course_view.end_date, 5 | course_record_item_record_link.item_record_id, 6 | bib_record_item_record_link.bib_record_id, 7 | iv.varfield_type_code, 8 | iv.field_content 9 | 10 | from 11 | sierra_view.course_view, 12 | sierra_view.course_record_item_record_link, 13 | sierra_view.bib_record_item_record_link, 14 | --sierra_view.bib_view, 15 | sierra_view.varfield_view cv, 16 | sierra_view.varfield_view iv 17 | 18 | Where 19 | bib_record_item_record_link.item_record_id = course_record_item_record_link.item_record_id 20 | AND course_view.id = cv.record_id 21 | AND course_view.id = course_record_item_record_link.course_record_id 22 | AND cv.varfield_type_code = 'p' 23 | AND cv.field_content = 'Hartov, Alex' 24 | --Now lets find item info: 25 | AND iv.record_id = course_record_item_record_link.item_record_id 26 | --AND iv.varfield_type_code = 'i701' 27 | order by iv.varfield_type_code 28 | -------------------------------------------------------------------------------- /coursereserves2.sql: -------------------------------------------------------------------------------- 1 | -- trying to gather info across active course records 2 | 3 | SELECT field_content 4 | 5 | FROM 6 | 7 | (SELECT FOO.record_id course, 8 | course_record_item_record_link.item_record_id item, 9 | course_record_bib_record_link.bib_record_id bib 10 | 11 | FROM 12 | (SELECT course_record.record_id 13 | 14 | FROM sierra_view.course_record 15 | WHERE 16 | now() > course_record.begin_date 17 | and now() < course_record.end_date) AS FOO JOIN sierra_view.course_record_item_record_link on FOO.record_id = course_record_item_record_link.course_record_id 18 | JOIN sierra_view.course_record_bib_record_link on FOO.record_id = course_record_bib_record_link.course_record_id) AS BAR JOIN sierra_view.varfield on varfield.record_id = BAR.course 19 | -------------------------------------------------------------------------------- /currentqueries.sql: -------------------------------------------------------------------------------- 1 | SELECT procpid,client_addr, query_start, current_query FROM pg_stat_activity WHERE current_query != '' 2 | -------------------------------------------------------------------------------- /dartid2recid.sql: -------------------------------------------------------------------------------- 1 | -- given the "Univ Id" number, look up the patron record id. 2 | 3 | SELECT 4 | patron_record.id 5 | FROM 6 | sierra_view.patron_record, 7 | sierra_view.varfield 8 | WHERE 9 | patron_record.id = varfield.record_id 10 | AND varfield_type_code = 'u' 11 | AND varfield.field_content ILIKE '35915a' 12 | -------------------------------------------------------------------------------- /desktopoptions.sql: -------------------------------------------------------------------------------- 1 | -- This query was used to find everyone who had a specific value set for a specific desktop option. 2 | SELECT 3 | iii_user.name, 4 | iii_user.full_name 5 | -- iiienv.iii_user_desktop_option.desktop_option_id, 6 | -- iiienv.iii_user_desktop_option.value, 7 | -- desktop_option.code, 8 | -- iiienv.iii_user_desktop_option.value, 9 | -- desktop_option.default_value 10 | FROM 11 | sierra_view.iii_user, 12 | iiienv.iii_user_desktop_option, 13 | iiienv.desktop_option 14 | WHERE 15 | iiienv.iii_user_desktop_option.iii_user_id = iii_user.id AND 16 | iii_user.id = iiienv.iii_user_desktop_option.iii_user_id AND 17 | desktop_option.id = iiienv.iii_user_desktop_option.desktop_option_id AND 18 | -- iii_user.name = 'jhm' and 19 | desktop_option.code = 'LimitPickupToHoldshelfmap' AND 20 | iii_user_desktop_option.value != 'true' 21 | ORDER BY full_name 22 | ; 23 | -------------------------------------------------------------------------------- /dhmcnonloading.sql: -------------------------------------------------------------------------------- 1 | SELECT id2reckey(pr.id) 2 | 3 | FROM 4 | sierra_view.patron_record pr JOIN varfield v on pr.id = v.record_id 5 | WHERE 6 | pr.pcode1 = 'h' 7 | AND v.varfield_type_code = 'l' 8 | AND v.field_content IS DISTINCT FROM NULL 9 | AND 'Employee' || to_char(current_timestamp, 'YYYYMMDD') != field_content -------------------------------------------------------------------------------- /duplicatebarcodes.sql: -------------------------------------------------------------------------------- 1 | Select count(*), barcode 2 | FROM sierra_view.item_view 3 | GROUP by barcode 4 | HAVING count(*)>1 -------------------------------------------------------------------------------- /dupmarcfields.sql: -------------------------------------------------------------------------------- 1 | -- find records with multiples of a given MARC tag. 2 | 3 | select 'b' || bib_view.record_num || 'a' 4 | 5 | from sierra_view.varfield_view, 6 | sierra_view.bib_view 7 | where 8 | varfield_view.record_id = bib_view.id 9 | AND varfield_view.marc_tag = '948' 10 | Group by bib_view.record_num 11 | Having count(marc_tag = '948') > 1 12 | ORDER BY bib_view.record_num 13 | -------------------------------------------------------------------------------- /dvdcallnum.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | varfield_view.record_num, 3 | item_view.barcode 4 | FROM 5 | sierra_view.item_view, 6 | sierra_view.varfield_view 7 | WHERE 8 | item_view.id = varfield_view.record_id AND 9 | varfield_view.marc_tag = '950' AND 10 | varfield_view.field_content LIKE '|b' AND 11 | varfield_view.varfield_type_code = 'c'; 12 | -------------------------------------------------------------------------------- /examplequery.sql: -------------------------------------------------------------------------------- 1 | select id2reckey(id) 2 | 3 | From 4 | bib_record 5 | 6 | Where 7 | cataloging_date_gmt > '11/02/2016' -------------------------------------------------------------------------------- /faileddup050search.sql: -------------------------------------------------------------------------------- 1 | Select id2reckey(foo.bibid) from 2 | (SELECT bib_record.id as bibid, varfield_view.id as varid 3 | FROM sierra_view.varfield_view JOIN sierra_view.bib_record on varfield_view.record_id = bib_record.id 4 | WHERE 5 | varfield_type_code = 'c')as foo JOIN sierra_view.varfield_view on foo.varid = varfield_view.id 6 | where 7 | varfield_view.varfield_type_code = 'y' 8 | -------------------------------------------------------------------------------- /feedbuilder.sql: -------------------------------------------------------------------------------- 1 | SELECT bib_view.record_num FROM 2 | (SELECT DISTINCT 3 | bib_record.id 4 | --fund_master.code 5 | 6 | FROM 7 | sierra_view.bib_record, 8 | sierra_view.item_record, 9 | sierra_view.order_record, 10 | sierra_view.bib_record_item_record_link, 11 | sierra_view.bib_record_order_record_link, 12 | sierra_view.order_record_cmf, 13 | sierra_view.fund_master 14 | 15 | WHERE 16 | bib_record.id = bib_record_item_record_link.bib_record_id 17 | AND bib_record.id = bib_record_order_record_link.bib_record_id 18 | AND item_record.id = bib_record_item_record_link.item_record_id 19 | AND order_record.id = bib_record_order_record_link.order_record_id 20 | AND order_record_cmf.order_record_id = order_record.id 21 | AND bib_record.bcode3 = '-' 22 | AND CAST (order_record_cmf.fund_code AS INTEGER) = fund_master.code_num 23 | AND (fund_master.code = 'engr1' or fund_master.code = 'sthay') 24 | AND bib_record.cataloging_date_gmt > current_timestamp - (30 * interval '1 day') 25 | ) AS bibrecid, sierra_view.bib_view 26 | WHERE bib_view.id = bibrecid.id 27 | ORDER BY record_num DESC 28 | --LIMIT 200 -------------------------------------------------------------------------------- /feldbergcheckouts.sql: -------------------------------------------------------------------------------- 1 | select 2 | 3 | distinct item_location_code, 4 | transaction_gmt 5 | --op_code, 6 | --itype_code_num, 7 | 8 | 9 | 10 | 11 | FROM 12 | sierra_view.circ_trans 13 | 14 | WHERE 15 | stat_group_code_num > '599' 16 | AND stat_group_code_num < '700' 17 | AND op_code = 'o' 18 | 19 | ORDER BY item_location_code asc 20 | -------------------------------------------------------------------------------- /find405-5-d.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | varfield.record_id, 3 | varfield.varfield_type_code, 4 | varfield.field_content 5 | FROM 6 | sierra_view.varfield 7 | 8 | WHERE 9 | ( record_id=(select recid2hash('i1608022')) 10 | AND varfield.varfield_type_code='y' 11 | AND varfield.marc_tag='950' 12 | AND varfield.field_content LIKE '|s%'); 13 | -------------------------------------------------------------------------------- /findoclcnums.sql: -------------------------------------------------------------------------------- 1 | SELECT "record_num", "record_type_code", "content" AS "oclc" 2 | FROM sierra_view.subfield_view 3 | WHERE record_type_code = 'b' 4 | AND ("marc_tag" IN ('001', '019', '035')) 5 | LIMIT 10000 6 | -------------------------------------------------------------------------------- /genfeedbuilder.sql: -------------------------------------------------------------------------------- 1 | -- not quite matching up. 2 | SELECT bib_view.record_num FROM ( ( ( SELECT DISTINCT(iiirecord.bib_record_order_record_link.bib_record_id) as recid , 121 FROM iiirecord.bib_record_order_record_link JOIN iiirecord.order_record ON iiirecord.bib_record_order_record_link.order_record_id = iiirecord.order_record.id JOIN iiirecord.order_record_cmf ocmf ON iiirecord.order_record.id = ocmf.order_record_id LEFT JOIN public.fund_master fm ON fm.code_num = (CASE WHEN ocmf.fund_code ~ E'^\\d+$' THEN CAST(ocmf.fund_code AS INTEGER) ELSE null END) LEFT JOIN public.accounting_unit au ON au.id = fm.accounting_unit_id WHERE (order_record.accounting_unit_code_num = au.code_num OR au.code_num is null) AND fm.code = E'engr1' AND (iiirecord.bib_record_order_record_link.bib_record_id) BETWEEN 420907795008 AND 420916795007 UNION SELECT DISTINCT(iiirecord.bib_record_order_record_link.bib_record_id) as recid , 121 FROM iiirecord.bib_record_order_record_link JOIN iiirecord.order_record ON iiirecord.bib_record_order_record_link.order_record_id = iiirecord.order_record.id JOIN iiirecord.order_record_cmf ocmf ON iiirecord.order_record.id = ocmf.order_record_id LEFT JOIN public.fund_master fm ON fm.code_num = (CASE WHEN ocmf.fund_code ~ E'^\\d+$' THEN CAST(ocmf.fund_code AS INTEGER) ELSE null END) LEFT JOIN public.accounting_unit au ON au.id = fm.accounting_unit_id WHERE (order_record.accounting_unit_code_num = au.code_num OR au.code_num is null) AND fm.code = E'sthay' AND (iiirecord.bib_record_order_record_link.bib_record_id) BETWEEN 420907795008 AND 420916795007 ) INTERSECT (SELECT DISTINCT(iiirecord.bib_record.id) AS recid , 121 FROM iiirecord.bib_record WHERE (iiirecord.bib_record.id BETWEEN 420906795008 AND 423054278655 AND date_trunc('day',iiirecord.bib_record.cataloging_date) IS NOT NULL AND (iiirecord.bib_record.id) BETWEEN 420907795008 AND 420916795007) )) ORDER BY recid DESC LIMIT 200 ) 3 | AS bibrecid, sierra_view.bib_view 4 | WHERE bib_view.id = bibrecid.recid 5 | -------------------------------------------------------------------------------- /hasholds.sql: -------------------------------------------------------------------------------- 1 | --Pass in the bib and item record numbers. 2 | --A hold has been found if this returns one or more record numbers. 3 | 4 | SELECT id2reckey(hold.record_id) 5 | 6 | FROM 7 | sierra_view.hold, 8 | sierra_view.bib_record_item_record_link 9 | 10 | WHERE 11 | (hold.record_id = bib_record_item_record_link.bib_record_id -- hold on the bib 12 | OR 13 | hold.record_id = bib_record_item_record_link.item_record_id) -- hold on the item) 14 | AND (hold.record_id = reckey2id('b5283024') 15 | OR hold.record_id = reckey2id('i4266312')) -------------------------------------------------------------------------------- /hathitrust.sql: -------------------------------------------------------------------------------- 1 | -- Hathi Trust records 2 | -- first, the serials! 3 | 4 | SELECT distinct 5 | varfield.field_content as OCLCNUM, 6 | bib_record.bcode1 AS MATTYPE, bib_record.bcode3 as bibstatus 7 | --, bib_record.bcode2 as bibsource 8 | FROM 9 | iiirecord.bib_record, 10 | iiirecord.varfield, 11 | iiirecord.bib_record_holding_record_link 12 | WHERE 13 | varfield.record_id = bib_record.record_id AND 14 | bib_record.record_id = bib_record_holding_record_link.bib_record_id --should find things with holdings records 15 | AND (bcode1 = 'a' OR bcode1 = 'c' OR bcode1 = 'd' OR bcode1 = 't') 16 | AND varfield.marc_tag = '001' 17 | AND varfield.field_content ~ '^o' 18 | 19 | limit 1000; 20 | -------------------------------------------------------------------------------- /htmpm.sql: -------------------------------------------------------------------------------- 1 |  --requires privileged account to access iiirecord schema. 2 | --select * from ( 3 | --Stuck on pulling the 001 with ^o at the same time as marc_tag=300 and field_content Doesn't have p in it... 4 | SELECT 5 | varfield.field_content, 6 | -- case when varfield.marc_tag = '001' then varfield.field_content else NULL end as ocnum, 7 | 'b' || record_metadata.record_num as record_num 8 | -- bib_record_view.bcode1 as mat_type, 9 | -- bib_record_view.bcode2 as source, 10 | -- bib_record_view.bcode3 as bib_status, 11 | -- bib_record_view.cataloging_date 12 | FROM 13 | iiirecord.bib_record 14 | join iiirecord.record_metadata on bib_record.id = record_metadata.id 15 | join iiirecord.varfield on bib_record.id = varfield.record_id 16 | join iiirecord.leader_field on leader_field.record_id = bib_record.id 17 | join iiirecord.bib_record_item_record_link on bib_record.id = bib_record_item_record_link.bib_record_id 18 | join iiirecord.bib_record_holding_record_link on bib_record.id = bib_record_holding_record_link.bib_record_id, 19 | iiirecord.item_record, 20 | iiirecord.holding_record, 21 | iiirecord.holding_record_location 22 | WHERE 23 | item_record.id = bib_record_item_record_link.item_record_id 24 | AND holding_record.id = holding_record_location.holding_record_id 25 | AND (item_record.status = 'h' OR holding_record_location.location_code != 'none') 26 | AND leader_field.record_type_code = 'a' --bib rec type = a 27 | AND leader_field.bib_level_code = 'm'--bib levl = m 28 | AND bib_record.bcode3 ~ '[^cdefgijklnopqrstuvw]' -- bib status not within c-g or i-l or n-w 29 | AND bib_record.bcode1 = 'a' -- bib mat type = a 30 | AND bib_record.bcode2 ~ '[^cdefg]' -- bib source not within c and g. 31 | --AND bib_record.bcode2 not in ('c','d','e','f','g') 32 | AND (varfield.marc_tag = '001' AND varfield.field_content ~ '^o') 33 | AND EXISTS ( Select 1 34 | from iiirecord.varfield 35 | where 36 | varfield.marc_tag = '300' 37 | and not varfield.field_content ~'p' 38 | and varfield.record_id = bib_record.id) 39 | 40 | --AND -- (item status = h or checkin loc != 'none') 41 | -------------------------------------------------------------------------------- /htmpm2016.sql: -------------------------------------------------------------------------------- 1 | --rewritten for use without elevated privilege 5/25/2016. 2 | --time to run query: 21s 3 | --rows returned: 41038 4 | --would need to include varfields from item and holdings records in order to provide "enumeration chronology information." 5 | SELECT 6 | distinct varfield.field_content, 7 | id2reckey(bib_record.id) as record_num 8 | FROM 9 | sierra_view.bib_record 10 | join sierra_view.varfield on bib_record.id = varfield.record_id 11 | join sierra_view.leader_field on leader_field.record_id = bib_record.id 12 | join sierra_view.bib_record_item_record_link on bib_record.id = bib_record_item_record_link.bib_record_id 13 | join sierra_view.bib_record_holding_record_link on bib_record.id = bib_record_holding_record_link.bib_record_id, 14 | sierra_view.item_record, 15 | sierra_view.holding_record, 16 | sierra_view.holding_record_location 17 | WHERE 18 | item_record.id = bib_record_item_record_link.item_record_id 19 | AND holding_record.id = bib_record_holding_record_link.holding_record_id 20 | AND holding_record.id = holding_record_location.holding_record_id 21 | AND (item_record.item_status_code = 'h' OR holding_record_location.location_code != 'none') 22 | AND (leader_field.record_type_code = 'a' --bib rec type = a 23 | AND leader_field.bib_level_code = 'm') --bib levl = m 24 | AND bib_record.bcode3 ~ '[-adjmwxz]' -- bib status not within c-g or i-l or n-w 25 | AND bib_record.bcode1 = 'a' -- bib mat type = a 26 | AND bib_record.bcode2 ~ '[dnopr]' -- bib source not within c and g. 27 | AND varfield.marc_tag = '001' 28 | AND (varfield.field_content NOT ILIKE 'b%' AND varfield.field_content NOT ILIKE 'r%' AND varfield.field_content NOT ILIKE 's%' AND varfield.field_content NOT ILIKE 'e%' AND varfield.field_content NOT LIKE '%-%') 29 | AND EXISTS ( Select 1 30 | from varfield 31 | where 32 | varfield.marc_tag = '300' 33 | and not (varfield.field_content ~ '%p.%' OR varfield.field_content ~ '%pages%') 34 | and varfield.record_id = bib_record.id) 35 | ORDER BY field_content; -------------------------------------------------------------------------------- /htmpm2017.sql: -------------------------------------------------------------------------------- 1 | --rewritten for use without elevated privilege 5/25/2016. 2 | --time to run query: 21s 3 | --rows returned: 41038 4 | --would need to include varfields from item and holdings records in order to provide "enumeration chronology information." 5 | SELECT 6 | distinct varfield.field_content, 7 | id2reckey(bib_record.id) as record_num 8 | FROM 9 | sierra_view.bib_record 10 | join sierra_view.varfield on bib_record.id = varfield.record_id 11 | join sierra_view.leader_field on leader_field.record_id = bib_record.id 12 | join sierra_view.bib_record_item_record_link on bib_record.id = bib_record_item_record_link.bib_record_id 13 | join sierra_view.bib_record_holding_record_link on bib_record.id = bib_record_holding_record_link.bib_record_id, 14 | sierra_view.item_record, 15 | sierra_view.holding_record, 16 | sierra_view.holding_record_location 17 | WHERE 18 | item_record.id = bib_record_item_record_link.item_record_id 19 | AND holding_record.id = bib_record_holding_record_link.holding_record_id 20 | AND holding_record.id = holding_record_location.holding_record_id 21 | AND (item_record.item_status_code = 'h' OR holding_record_location.location_code != 'none') 22 | AND (leader_field.record_type_code = 'a' --bib rec type = a 23 | AND leader_field.bib_level_code = 'm') --bib levl = m 24 | AND bib_record.bcode3 ~ '[-adjmwxz]' -- bib status not within c-g or i-l or n-w 25 | AND bib_record.bcode1 = 'a' -- bib mat type = a 26 | AND bib_record.bcode2 ~ '[dnopr]' -- bib source not within c and g. 27 | AND varfield.marc_tag = '001' 28 | AND (varfield.field_content NOT ILIKE 'b%' AND varfield.field_content NOT ILIKE 'r%' AND varfield.field_content NOT ILIKE 's%' AND varfield.field_content NOT ILIKE 'e%' AND varfield.field_content NOT LIKE '%-%') 29 | AND EXISTS ( Select 1 30 | from sierra_view.varfield 31 | where 32 | varfield.marc_tag = '300' 33 | and not (varfield.field_content ~ '%p.%' OR varfield.field_content ~ '%pages%') 34 | and varfield.record_id = bib_record.id) 35 | ORDER BY field_content; -------------------------------------------------------------------------------- /htserials.sql: -------------------------------------------------------------------------------- 1 | --requires privileged account to access iiirecord schema. 2 | --query fixed 8/27/2015 3 | SELECT 4 | varfield.field_content, 5 | 'b' || bib_record_view.record_num as record_num 6 | -- bib_record_property.bib_level_code, 7 | -- bib_record_view.bcode1 as mat_type, 8 | -- bib_record_view.bcode2 as source, 9 | -- bib_record_view.bcode3 as bib_status, 10 | -- bib_record_view.cataloging_date 11 | FROM 12 | iiirecord.bib_record_view 13 | inner join iiirecord.varfield on bib_record_view.record_id = varfield.record_id 14 | inner join iiirecord.leader_field on leader_field.record_id = bib_record_view.record_id 15 | WHERE 16 | leader_field.bib_level_code = 's' 17 | AND bib_record_view.bcode3 ~ '[-adhijklmwxyz]' -- bib status not within b-g and not within n-w --re-added d's and w's 18 | AND bib_record_view.bcode1 ~ '[at]' -- bib mat type = (a or t) 19 | AND varfield.marc_tag = '001' 20 | AND (varfield.field_content NOT ILIKE 'b%' AND varfield.field_content NOT ILIKE 'r%' AND varfield.field_content NOT ILIKE 's%' AND varfield.field_content NOT LIKE '%-%') 21 | AND bib_record_view.cataloging_date is not null -- add cat date not blank 22 | ORDER BY field_content 23 | ; -------------------------------------------------------------------------------- /htserials2016.sql: -------------------------------------------------------------------------------- 1 | --query adjusted to run without elevated privilege 5/25/2016. 2 | --time to run query: 26s 3 | --rows returned: 46161 4 | SELECT 5 | distinct varfield.field_content, 6 | id2reckey(bib_record.id) 7 | FROM 8 | sierra_view.bib_record 9 | inner join sierra_view.varfield on bib_record.id = varfield.record_id 10 | inner join sierra_view.leader_field on leader_field.record_id = bib_record.id 11 | WHERE 12 | leader_field.bib_level_code = 's' 13 | AND bib_record.bcode3 ~ '[-adhijklmwxyz]' -- bib status 14 | AND bib_record.bcode1 ~ '[at]' -- bib mat type 15 | AND varfield.marc_tag = '001' 16 | AND (varfield.field_content NOT ILIKE 'b%' AND varfield.field_content NOT ILIKE 'r%' AND varfield.field_content NOT ILIKE 's%' AND varfield.field_content NOT LIKE '%-%') 17 | AND bib_record.cataloging_date_gmt is not null -- cat date not blank 18 | ORDER BY field_content 19 | ; -------------------------------------------------------------------------------- /htserials2018.sql: -------------------------------------------------------------------------------- 1 | --query adjusted to run without elevated privilege 5/25/2016. 2 | --time to run query: 26s 3 | --rows returned: 46161 4 | SELECT 5 | distinct varfield.field_content, 6 | id2reckey(bib_record.id) 7 | FROM 8 | sierra_view.bib_record 9 | inner join sierra_view.varfield on bib_record.id = varfield.record_id 10 | inner join sierra_view.leader_field on leader_field.record_id = bib_record.id 11 | WHERE 12 | leader_field.bib_level_code = 's' 13 | AND bib_record.bcode3 ~ '[-adhijklmwxyz]' -- bib status 14 | AND bib_record.bcode1 ~ '[at]' -- bib mat type 15 | AND varfield.marc_tag = '001' 16 | AND (varfield.field_content NOT ILIKE 'b%' AND varfield.field_content NOT ILIKE 'r%' AND varfield.field_content NOT ILIKE 's%' AND varfield.field_content NOT LIKE '%-%') 17 | AND bib_record.cataloging_date_gmt is not null -- cat date not blank 18 | ORDER BY field_content 19 | ; -------------------------------------------------------------------------------- /htspm.sql: -------------------------------------------------------------------------------- 1 | --requires privileged account to access iiirecord schema. 2 | select * from ( 3 | SELECT 4 | 'b' || bib_record_view.record_num as record_num, 5 | -- bib_record_property.bib_level_code, 6 | -- bib_record_view.bcode1 as mat_type, 7 | -- bib_record_view.bcode2 as source, 8 | -- bib_record_view.bcode3 as bib_status, 9 | varfield.field_content 10 | -- bib_record_view.cataloging_date 11 | 12 | FROM 13 | iiirecord.bib_record_view 14 | inner join iiirecord.varfield on bib_record_view.record_id = varfield.record_id 15 | inner join iiirecord.bib_record_property on bib_record_property.bib_record_id = bib_record_view.record_id 16 | inner join iiirecord.leader_field on leader_field.record_id = bib_record_view.record_id 17 | WHERE 18 | leader_field.bib_level_code = 'm' 19 | AND bib_record_view.bcode3 ~ '[-ahijklmxyz]' -- bib status not within b-g and not within n-w 20 | AND bib_record_view.bcode1 ~ '[at]' -- bib mat type = (a or t) 21 | AND bib_record_view.bcode2 ~ '[^cg]' -- bib source not c or g. 22 | AND varfield.marc_tag = '001' 23 | AND varfield.field_content ~ '^o' 24 | AND bib_record_view.cataloging_date is not null -- add cat date not blank 25 | ) 26 | as foo 27 | order by record_num 28 | ; -------------------------------------------------------------------------------- /htspm2.sql: -------------------------------------------------------------------------------- 1 |  --requires privileged account to access iiirecord schema. 2 | --fixed 8/27/2015 3 | SELECT 4 | varfield.field_content, 5 | id2reckey(bib_record.id) 6 | -- bib_record_property.bib_level_code, 7 | -- bib_record_view.bcode1 as mat_type, 8 | -- bib_record_view.bcode2 as source, 9 | -- bib_record_view.bcode3 as bib_status, 10 | -- bib_record_view.cataloging_date 11 | FROM 12 | iiirecord.bib_record 13 | --inner join iiirecord.record_metadata on bib_record.id = record_metadata.id 14 | inner join iiirecord.varfield on bib_record.id = varfield.record_id 15 | inner join iiirecord.leader_field on leader_field.record_id = bib_record.id 16 | WHERE 17 | leader_field.bib_level_code = 'm' 18 | AND bib_record.bcode3 ~ '[-adhijklmwxyz]' -- bib status not within b-g and not within n-w -- d's and w's re-added later. 19 | AND bib_record.bcode1 ~ '[at]' -- bib mat type = (a or t) 20 | AND bib_record.bcode2 ~ '[^cg]' -- bib source not c or g. 21 | AND varfield.marc_tag = '001' 22 | AND (varfield.field_content NOT ILIKE 'b%' AND varfield.field_content NOT ILIKE 'r%' AND varfield.field_content NOT ILIKE 's%' AND varfield.field_content NOT ILIKE 'e%' AND varfield.field_content NOT LIKE '%-%') 23 | AND bib_record.cataloging_date is not null -- add cat date not blank 24 | --Need to exclude (case insensitive) 245 |h[micro 25 | ORDER BY varfield.field_content; -------------------------------------------------------------------------------- /htspm2016.sql: -------------------------------------------------------------------------------- 1 | --rewritten to run without elevated privilege 5/25/2016 2 | --time to run query: 241s 3 | --rows returned: 1526253 4 | SELECT 5 | distinct varfield.field_content, 6 | id2reckey(bib_record.id) 7 | FROM 8 | sierra_view.bib_record 9 | inner join sierra_view.varfield on bib_record.id = varfield.record_id 10 | inner join sierra_view.leader_field on leader_field.record_id = bib_record.id 11 | WHERE 12 | leader_field.bib_level_code = 'm' 13 | AND bib_record.bcode3 ~ '[-adjmwxz]' -- bib status. 14 | AND bib_record.bcode1 ~ '[at]' -- bib mat type 15 | AND bib_record.bcode2 ~ '[dnopr]' -- bib source. 16 | AND varfield.marc_tag = '001' 17 | AND (varfield.field_content NOT ILIKE 'b%' AND varfield.field_content NOT ILIKE 'r%' AND varfield.field_content NOT ILIKE 's%' AND varfield.field_content NOT ILIKE 'e%' AND varfield.field_content NOT LIKE '%-%') 18 | AND bib_record.cataloging_date_gmt is not null -- cat date not blank 19 | ORDER BY field_content; 20 | -------------------------------------------------------------------------------- /indexedfields.sql: -------------------------------------------------------------------------------- 1 |  2 | 3 | SELECT 4 | record_type_code, 5 | varfield_type_code as "field_group_tag", 6 | display_order, 7 | name 8 | FROM sierra_view.phrase_type 9 | JOIN sierra_view.phrase_type_name ON phrase_type_name.phrase_type_id = phrase_type.id 10 | ORDER by 1, 2 11 | -------------------------------------------------------------------------------- /initials+group.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | iii_user.name, 3 | iii_user.iii_user_group_code, 4 | iii_user.full_name 5 | FROM 6 | sierra_view.iii_user 7 | ORDER BY 8 | iii_user.iii_user_group_code ASC; 9 | -------------------------------------------------------------------------------- /invoicenum_chartstring.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | external_fund_property.code_num, 3 | external_fund_property_name.name as CHARTSTRING, 4 | invoice_record.invoice_number_text, 5 | invoice_record_line.paid_amt, 6 | invoice_record.posted_date 7 | FROM 8 | sierra_view.external_fund_property, 9 | sierra_view.external_fund_property_name, 10 | sierra_view.external_fund_property_myuser, 11 | iiirecord.invoice_record_line, 12 | iiirecord.invoice_record 13 | WHERE 14 | sierra_view.external_fund_property_myuser.code = external_fund_property.code_num AND 15 | external_fund_property_name.external_fund_property_id = external_fund_property.id AND 16 | invoice_record_line.invoice_record_id = invoice_record.record_id and 17 | iiirecord.invoice_record_line.external_fund_code_num = sierra_view.external_fund_property.code_num and 18 | invoice_record.invoice_number_text = '10286584' 19 | 20 | ; -------------------------------------------------------------------------------- /itemcountsbyitype.sql: -------------------------------------------------------------------------------- 1 | SELECT item_view.itype_code_num, itype_property_name.name, count(item_view.record_num) 2 | 3 | FROM 4 | 5 | sierra_view.item_view join sierra_view.itype_property on itype_property.code_num = item_view.itype_code_num 6 | join sierra_view.itype_property_name on itype_property_name.itype_property_id = itype_property.id 7 | 8 | Group By item_view.itype_code_num, itype_property_name.name 9 | order by item_view.itype_code_num 10 | -------------------------------------------------------------------------------- /itemsWmanybibs.sql: -------------------------------------------------------------------------------- 1 | SELECT id2reckey(bib_record_id), items FROM 2 | (Select bib_record_id, count (item_record_id) as items 3 | from 4 | sierra_view.bib_record_item_record_link 5 | 6 | Group by bib_record_id 7 | ) as foo 8 | WHERE items > 500 9 | order by items desc -------------------------------------------------------------------------------- /itemsthathavebeenonreserve.sql: -------------------------------------------------------------------------------- 1 | SELECT id2reckey(item_record.id) 2 | 3 | FROM 4 | sierra_view.item_record JOIN sierra_view.varfield on item_record.id = varfield.record_id 5 | 6 | WHERE 7 | varfield_type_code = 'r' 8 | AND field_content LIKE '%RESERVE%' 9 | -------------------------------------------------------------------------------- /kresgeisbn.sql: -------------------------------------------------------------------------------- 1 | SELECT record_id FROM sierra_view.phrase_entry WHERE index_tag || index_entry LIKE 'i' || '0792360877' || '%' -------------------------------------------------------------------------------- /labels.sql: -------------------------------------------------------------------------------- 1 |  2 | SELECT distinct 3 | bib_record.record_id 4 | FROM 5 | sierra_view.bib_record, 6 | sierra_view.varfield 7 | -- sierra_view.bib_record_item_record_link, 8 | -- sierra_view.item_view 9 | WHERE 10 | bib_record.record_id > 6104293 and 11 | ( 12 | (varfield.record_id = bib_record.record_id) 13 | OR 14 | (to_char((date (bib_record.cataloging_date_gmt)), 'YYMMDD') > to_char((date 'now'), 'YYMMDD') AND 15 | --bib_record_item_record_link.bib_record_id = bib_view.id AND 16 | bib_record.bcode2 != 'g' AND 17 | bib_record.bcode3 != 'b')) 18 | LIMIT 2 ; 19 | -------------------------------------------------------------------------------- /laddquery.sql: -------------------------------------------------------------------------------- 1 | Select 2 | id2reckey(bib_record.id), 3 | id2reckey(item_record.id), 4 | --vi.field_content, 5 | vb.field_content 6 | 7 | from 8 | bool_set, 9 | bib_record_item_record_link, 10 | bib_record, 11 | item_record, 12 | varfield vb inner join 13 | --varfield vi 14 | 15 | where 16 | bool_info_id = '203' 17 | AND bool_set.record_metadata_id = bib_record_item_record_link.item_record_id 18 | AND item_record.id = bib_record_item_record_link.item_record_id 19 | AND bib_record.id = bib_record_item_record_link.bib_record_id 20 | AND bib_record.id = vb.record_id 21 | AND vb.varfield_type_code = 'c' 22 | --AND item_record.id = vi.record_id 23 | --AND vi.varfield_type_code = 'c' -------------------------------------------------------------------------------- /lastautovac.sql: -------------------------------------------------------------------------------- 1 | select relname,last_vacuum, last_autovacuum, last_analyze, last_autoanalyze from pg_stat_user_tables; -------------------------------------------------------------------------------- /leachquery.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | patron_record_fullname.patron_record_id, 3 | patron_record_fullname.last_name, 4 | patron_record_fullname.first_name, 5 | fine.assessed_gmt, 6 | fine.item_charge_amt 7 | FROM 8 | sierra_view.fine, 9 | sierra_view.patron_record_fullname, 10 | sierra_view.patron_view, 11 | sierra_view.mblock_property 12 | WHERE 13 | patron_record_fullname.patron_record_id = fine.patron_record_id AND 14 | patron_view.mblock_code = mblock_property.code AND 15 | fine.item_charge_amt > 25 AND 16 | current_date - fine.assessed_gmt > interval'31'; 17 | -------------------------------------------------------------------------------- /loanruledet.sql: -------------------------------------------------------------------------------- 1 | 2 | DECLARE 3 | patron_age integer; 4 | loanrule_number integer; 5 | BEGIN 6 | SELECT 7 | CASE 8 | WHEN patron_bdate IS NULL 9 | THEN null 10 | ELSE 11 | date_part('year', age(date(patron_bdate))) 12 | END 13 | INTO patron_age; 14 | SELECT loanrule.loan_rule_num --, clrd.display_order, loanrule_name.name 15 | FROM public.circ_loan_rule loanrule 16 | JOIN public.circ_loan_rule_determiner clrd 17 | ON clrd.loan_rule_id = loanrule.id 18 | JOIN public.circ_loan_rule_name loanrule_name 19 | ON loanrule_name.loan_rule_id = loanrule.id 20 | JOIN public.circ_loan_rule_determiner_itype_property clrd_itype 21 | ON clrd_itype.circ_loan_rule_determiner_id = clrd.id 22 | JOIN public.circ_loan_rule_determiner_ptype_property clrd_ptype 23 | ON clrd_ptype.circ_loan_rule_determiner_id = clrd.id 24 | JOIN public.circ_loan_rule_determiner_location clrd_location 25 | ON clrd_location.circ_loan_rule_determiner_id = clrd.id 26 | LEFT JOIN public.location AS location ON location.code = trim(item_location) 27 | LEFT JOIN public.itype_property AS itype ON itype.code_num = item_itype 28 | LEFT JOIN public.ptype AS ptype ON ptype.value = patron_ptype 29 | WHERE 30 | loanrule.period_uom != -1 -- No loanrule code to test as in the c-code 31 | AND loanrule.is_holdable = true 32 | AND clrd.is_active = true 33 | AND clrd_ptype.ptype_property_id = ptype.id 34 | AND clrd_itype.itype_property_id = itype.id 35 | AND clrd_location.location_id = location.id 36 | AND ( 37 | CASE 38 | WHEN patron_age IS NULL 39 | THEN true 40 | WHEN clrd.age_from = 0 AND clrd.age_to = 0 41 | THEN true 42 | WHEN (patron_age >= clrd.age_from AND patron_age <= clrd.age_to) 43 | THEN true 44 | ELSE false 45 | END 46 | ) 47 | ORDER BY clrd.display_order DESC -- ruledet is read in reverse order 48 | LIMIT 1 49 | INTO loanrule_number; 50 | 51 | RETURN loanrule_number; 52 | END 53 | 54 | -------------------------------------------------------------------------------- /loanrulemodeller.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT 2 | circ_loan_rule.loan_rule_num, 3 | circ_loan_rule.loan_period, 4 | CASE WHEN circ_loan_rule.period_uom = 3600 THEN 'hours' 5 | WHEN circ_loan_rule.period_uom = 86400 THEN 'days' 6 | END AS loan_period_unit, 7 | circ_loan_rule.is_holdable, 8 | circ_loan_rule_name.name AS loan_rule_name, 9 | circ_loan_rule_determiner.display_order AS determiner_order 10 | FROM 11 | public.circ_loan_rule, 12 | public.circ_loan_rule_determiner, 13 | public.circ_loan_rule_determiner_itype_property, 14 | public.circ_loan_rule_determiner_location, 15 | public.circ_loan_rule_determiner_ptype_property, 16 | public.circ_loan_rule_name, 17 | public.location, 18 | public.location_name, 19 | public.itype_property_name, 20 | public.itype_property, 21 | public.ptype, 22 | public.ptype_desc, 23 | public.branch, 24 | public.branch_name 25 | WHERE 26 | branch_name.branch_id = branch.id 27 | AND location.branch_code_num = branch.code_num 28 | AND circ_loan_rule_determiner_location.location_id = location.id 29 | AND circ_loan_rule_determiner_location.circ_loan_rule_determiner_id = circ_loan_rule_determiner.id 30 | AND ptype_desc.ptype_id = ptype.id 31 | AND itype_property_name.itype_property_id = itype_property.id 32 | AND circ_loan_rule_determiner.loan_rule_id = circ_loan_rule.id 33 | AND itype_property.id = circ_loan_rule_determiner_itype_property.itype_property_id 34 | AND circ_loan_rule_determiner_itype_property.circ_loan_rule_determiner_id = circ_loan_rule_determiner.id 35 | AND ptype.id = circ_loan_rule_determiner_ptype_property.ptype_property_id 36 | AND circ_loan_rule_determiner_ptype_property.circ_loan_rule_determiner_id = circ_loan_rule_determiner.id 37 | AND circ_loan_rule_name.loan_rule_id = circ_loan_rule.id 38 | AND circ_loan_rule_determiner_location.location_id = location.id 39 | AND circ_loan_rule_determiner_itype_property.itype_property_id = itype_property.id 40 | 41 | AND ptype.value = '0' 42 | AND itype_property.code_num = '0' 43 | AND location.code ='bakr' 44 | 45 | ORDER BY determiner_order DESC NULLS LAST 46 | LIMIT 1; 47 | 48 | -------------------------------------------------------------------------------- /locationnotinbiboritem.sql: -------------------------------------------------------------------------------- 1 | --Here's a query to find locations that are not used in any records. These probably need to be cleaned up. 2 | 3 | SELECT location.code 4 | 5 | FROM sierra_view.location 6 | 7 | LEFT JOIN sierra_view.item_record ON sierra_view.item_record.location_code = sierra_view.location.code 8 | LEFT JOIN sierra_view.bib_record_location ON sierra_view.bib_record_location.location_code = sierra_view.location.code 9 | LEFT JOIN sierra_view.order_record_cmf ON sierra_view.order_record_cmf.location_code = sierra_view.location.code 10 | LEFT JOIN sierra_view.holding_record_location on sierra_view.holding_record_location.location_code = sierra_view.location.code 11 | LEFT JOIN sierra_view.course_view ON sierra_view.course_view.location_code = sierra_view.location.code 12 | LEFT JOIN sierra_view.hold ON sierra_view.hold.pickup_location_code = sierra_view.location.code 13 | LEFT JOIN sierra_view.patron_record ON sierra_view.patron_record.home_library_code = sierra_view.location.code 14 | 15 | WHERE sierra_view.item_record.location_code IS NULL 16 | AND sierra_view.bib_record_location.location_code IS NULL 17 | AND sierra_view.order_record_cmf.location_code IS NULL 18 | AND sierra_view.holding_record_location.location_code IS NULL 19 | AND sierra_view.course_view.location_code IS NULL 20 | AND sierra_view.hold.pickup_location_code IS NULL 21 | AND sierra_view.patron_record.home_library_code IS NULL 22 | 23 | ORDER BY location.code -------------------------------------------------------------------------------- /lotsofitems.sql: -------------------------------------------------------------------------------- 1 | --find bib records with more than 100 items attached 2 | SELECT distinct 3 | b.record_id, 4 | COUNT(l.item_record_id) 5 | FROM 6 | sierra_view.bib_record_item_record_link l join sierra_view.bib_view b ON l.bib_record_id = b.id 7 | GROUP BY b.record_id 8 | HAVING 9 | COUNT(l.item_record_id) > 100 10 | order by count 11 | -------------------------------------------------------------------------------- /lowuselocs.sql: -------------------------------------------------------------------------------- 1 | SELECT location_name.name, location_code, count (*) 2 | FROM sierra_view.bib_record_location Join sierra_view.location on bib_record_location.location_code = location.code 3 | Join sierra_view.location_name on location_name.location_id = sierra_view.location.id 4 | group by location_code, name 5 | order by count 6 | -------------------------------------------------------------------------------- /marctagcounts.sql: -------------------------------------------------------------------------------- 1 | SELECT marc_tag, record_type_code, count(marc_tag) 2 | FROM 3 | sierra_view.varfield_view 4 | WHERE 5 | (record_type_code = 'b' OR record_type_code = 'i' or record_type_code = 'o' or record_type_code = 'c') 6 | AND marc_tag IS DISTINCT FROM NULL 7 | GROUP BY marc_tag, record_type_code 8 | ORDER BY marc_tag 9 | -------------------------------------------------------------------------------- /miloptions.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | iii_user.last_password_change_gmt, 3 | iii_user.name, 4 | iii_user_desktop_option.desktop_option_id, 5 | iii_user_desktop_option.value 6 | FROM 7 | sierra_view.iii_user_desktop_option, 8 | sierra_view.iii_user 9 | WHERE 10 | iii_user_desktop_option.iii_user_id = iii_user.id AND 11 | iii_user.name = 'mcatmet' 12 | ORDER BY 13 | iii_user_desktop_option.desktop_option_id ASC; 14 | -------------------------------------------------------------------------------- /mostcirculated.sql: -------------------------------------------------------------------------------- 1 | --look for 2 | select 3 | bib_view.title, 4 | innerquery.mc 5 | FROM 6 | sierra_view.bib_view, 7 | sierra_view.bib_record_item_record_link, 8 | (select 9 | item_record_id, count(item_record_id) as mc 10 | from 11 | report.circ_trans 12 | Where 13 | date_part('month', transaction_gmt) = '9' 14 | group by item_record_id 15 | order by mc desc) as innerquery 16 | WHERE 17 | innerquery.item_record_id = bib_record_item_record_link.item_record_id 18 | AND bib_view.id = bib_record_item_record_link.bib_record_id -------------------------------------------------------------------------------- /multiplesubfieldbs.sql: -------------------------------------------------------------------------------- 1 | -- find records with more than one subfield b on the 245. subfield b 2 | -- is not supposed to be repeatable. 3 | select bib_view.record_num, 4 | count(tag = 'b') > 1 5 | from sierra_view.subfield_view, 6 | sierra_view.bib_view 7 | where 8 | subfield_view.record_id = bib_view.id 9 | AND subfield_view.marc_tag = '245' 10 | Group by bib_view.record_num 11 | 12 | -------------------------------------------------------------------------------- /multvarfieldssamevalue.sql: -------------------------------------------------------------------------------- 1 | -- find records with multiples of a given MARC tag. 2 | SELECT DISTINCT ON (field_content) 3 | field_content FROM 4 | (select id2reckey(patron_record.id) as pid, field_content 5 | FROM 6 | sierra_view.patron_record join sierra_view.varfield ON patron_record.id = varfield.record_id 7 | 8 | where 9 | varfield.varfield_type_code = 'b') as foo 10 | Group By field_content 11 | HAVING count(field_content) > 1 12 | -------------------------------------------------------------------------------- /needezproxy.sql: -------------------------------------------------------------------------------- 1 | --Query pulls a list of records that should have 2 | --EZProxy but don't have it. 3 | 4 | SELECT id2reckey(b.id), 5 | s.content 6 | 7 | FROM 8 | sierra_view.subfield_view s INNER JOIN sierra_view.bib_record b ON b.id = s.record_id 9 | WHERE 10 | b.bcode1 = 'w' 11 | AND s.record_type_code = 'b' 12 | AND s.marc_tag = '856' 13 | AND b.bcode3 = '-' 14 | AND s.tag = 'u' 15 | AND s.content NOT LIKE '%idm%' 16 | and s.content NOT LIKE '%ddlp%' 17 | and s.content NOT LIKE 'http://ieeexplore.ieee.org/servlet/opac?punumber=%' 18 | and s.content NOT LIKE 'http://digital.casalini.it/%' 19 | ORDER BY s.content 20 | -------------------------------------------------------------------------------- /newcirctrans.sql: -------------------------------------------------------------------------------- 1 | --Working from the circ_transaction table to pull data on what has been checked out recently. 2 | 3 | SELECT 4 | id2reckey(item_record.id) recnum, 5 | COUNT(item_record.id) 6 | 7 | 8 | FROM 9 | sierra_view.circ_trans, 10 | sierra_view.item_record_property, 11 | sierra_view.item_record, 12 | sierra_view.bib_record_item_record_link, 13 | sierra_view.bib_record, 14 | sierra_view.varfield_view 15 | WHERE 16 | circ_trans.item_record_id = item_record.id 17 | AND circ_trans.op_code = 'o' 18 | AND item_location_code NOT LIKE 'rs%' 19 | AND item_record.id = bib_record_item_record_link.item_record_id 20 | AND bib_record.id = bib_record_item_record_link.bib_record_id 21 | AND item_record.id = item_record_property.item_record_id 22 | AND varfield_view.record_type_code = 'b' 23 | AND varfield_view.record_id = bib_record.id 24 | AND varfield_view.varfield_type_code = 'c' 25 | GROUP BY recnum 26 | ORDER BY count desc 27 | -------------------------------------------------------------------------------- /newhtspm.sql: -------------------------------------------------------------------------------- 1 |  --requires privileged account to access iiirecord schema. 2 | --fixed 8/27/2015 3 | SELECT 4 | varfield.field_content, 5 | id2reckey(bib_record.id) 6 | -- 'b' || record_metadata.record_num as record_num 7 | -- bib_record_property.bib_level_code, 8 | -- bib_record_view.bcode1 as mat_type, 9 | -- bib_record_view.bcode2 as source, 10 | -- bib_record_view.bcode3 as bib_status, 11 | -- bib_record_view.cataloging_date 12 | FROM 13 | iiirecord.bib_record 14 | inner join iiirecord.varfield on bib_record.id = varfield.record_id 15 | inner join iiirecord.leader_field on leader_field.record_id = bib_record.id 16 | WHERE 17 | leader_field.bib_level_code = 'm' 18 | AND bib_record.bcode3 ~ '[-adhijklmwxyz]' -- bib status not within b-g and not within n-w -- d's and w's re-added later. 19 | AND bib_record.bcode1 ~ '[at]' -- bib mat type = (a or t) 20 | AND bib_record.bcode2 ~ '[^cg]' -- bib source not c or g. 21 | AND varfield.marc_tag = '001' 22 | AND (varfield.field_content !~* '^[bres]%' 23 | AND SUBSTRING(varfield.field_content FROM '%#-#%' FOR '#') IS NOT DISTINCT FROM NULL) 24 | --AND (varfield.field_content NOT ILIKE 'b%' AND varfield.field_content NOT ILIKE 'r%' AND varfield.field_content NOT ILIKE 's%' AND varfield.field_content NOT ILIKE 'e%' AND varfield.field_content NOT LIKE '%-%') 25 | AND bib_record.cataloging_date is not null -- add cat date not blank 26 | --Need to exclude (case insensitive) 245 |h[micro 27 | ORDER BY varfield.field_content; -------------------------------------------------------------------------------- /orphanedrecords.sql: -------------------------------------------------------------------------------- 1 | select id2reckey(order_record.id) 2 | 3 | from 4 | order_record FULL OUTER JOIN bib_record_order_record_link ON order_record.id = bib_record_order_record_link.order_record_id, 5 | order_record orrec FULL OUTER JOIN resource_record_order_record_link ON orrec.id = resource_record_order_record_link.order_record_id 6 | where 7 | bib_record_order_record_link.order_record_id IS NOT DISTINCT FROM NULL 8 | AND resource_record_order_record_link.order_record_id IS NOT DISTINCT FROM NULL 9 | -------------------------------------------------------------------------------- /patronreadinghistory.sql: -------------------------------------------------------------------------------- 1 | --Pulls all patrons who have a reading history 2 | 3 | SELECT distinct id2reckey(patron_record_metadata_id) 4 | 5 | FROM 6 | sierra_view.reading_history -------------------------------------------------------------------------------- /patronswithspaces.sql: -------------------------------------------------------------------------------- 1 | Select varfield_view.field_content, 'p' || patron_view.record_num || 'a' 2 | 3 | From 4 | sierra_view.patron_view join sierra_view.varfield_view on patron_view.id = varfield_view.record_id 5 | 6 | Where 7 | 8 | varfield_view.varfield_type_code = 'z' 9 | AND varfield_view.field_content like '% ' 10 | -------------------------------------------------------------------------------- /patronuid2recid.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | patron_record.id 3 | FROM 4 | sierra_view.patron_record, 5 | sierra_view.varfield 6 | WHERE 7 | varfield.record_id = patron_record.id AND 8 | varfield.varfield_type_code = 'u' AND 9 | varfield.field_content ILIKE '35915a' 10 | 11 | -------------------------------------------------------------------------------- /patwithodues.sql: -------------------------------------------------------------------------------- 1 | --all patron fines. 2 | --see http://techdocs.iii.com/sierradna/Home.html?viewGroupName=Circulation#fine 3 | --for list of what each charge_code means 4 | 5 | SELECT r.id, 6 | fn.last_name, 7 | fn.first_name, 8 | f.charge_code, 9 | f.item_charge_amt, 10 | f.processing_fee_amt, 11 | f.billing_fee_amt, 12 | f.item_charge_amt + f.processing_fee_amt + f.billing_fee_amt as total 13 | 14 | FROM 15 | sierra_view.fine f JOIN sierra_view.patron_record r on f.patron_record_id = r.id 16 | JOIN sierra_view.patron_record_fullname fn on fn.patron_record_id = r.id 17 | ORDER BY id 18 | 19 | -------------------------------------------------------------------------------- /printerusers.sql: -------------------------------------------------------------------------------- 1 | -- this file searches for library staff members whose logins 2 | -- have been assigned printer numbers 3 and/or 4. 3 | select iii_user.name, 4 | iii_user.full_name, 5 | iii_user_printer_myuser.name 6 | from 7 | sierra_view.iii_user_printer_myuser left join sierra_view.iii_user on iii_user_id = id 8 | 9 | Where printer_code_num > '2' and printer_code_num <= '4' 10 | -------------------------------------------------------------------------------- /priv-renewloanrule.sql: -------------------------------------------------------------------------------- 1 | -- Requires elevated permissions - I'm using the "write access" login 2 | -- Replace '81' with the loanrule number extracted from the item record via the API. 3 | -- Returns number of renewals allowed. 4 | 5 | SELECT 6 | circ_loan_rule.max_renewal_num 7 | 8 | FROM 9 | public.circ_loan_rule 10 | 11 | WHERE 12 | circ_loan_rule.loan_rule_num = '81' -------------------------------------------------------------------------------- /privhasholds.sql: -------------------------------------------------------------------------------- 1 | --It looks like the id2reckey function requires elevated privileges. 2 | --Pass in the bib and item record numbers. 3 | --A hold has been found if this returns one or more record numbers. 4 | 5 | SELECT id2reckey(hold.record_id) 6 | 7 | FROM 8 | sierra_view.hold, 9 | sierra_view.bib_record_item_record_link 10 | 11 | WHERE 12 | (hold.record_id = bib_record_item_record_link.bib_record_id -- hold on the bib 13 | OR 14 | hold.record_id = bib_record_item_record_link.item_record_id) -- hold on the item) 15 | AND (hold.record_id = reckey2id('b5283024') 16 | OR hold.record_id = reckey2id('i4266312')) -------------------------------------------------------------------------------- /qtl.sql: -------------------------------------------------------------------------------- 1 | -- look for Millennium Media Mgmt files having the 2 | -- 'qtl' file extension. 3 | 4 | SELECT distinct 5 | '.b' || bib_view.record_num AS bib_rec_num, 6 | bib_view.title, 7 | varfield.field_content, 8 | '.r' || course_view.record_num AS course_rec_num 9 | FROM 10 | sierra_view.bib_view, 11 | sierra_view.bib_record_item_record_link, 12 | sierra_view.course_view, 13 | sierra_view.course_record_item_record_link, 14 | sierra_view.item_record, 15 | sierra_view.varfield 16 | WHERE 17 | bib_record_item_record_link.bib_record_id = bib_view.id AND 18 | bib_record_item_record_link.item_record_id = item_record.id AND 19 | course_record_item_record_link.item_record_id = item_record.id AND 20 | course_record_item_record_link.course_record_id = course_view.id AND 21 | varfield.record_id = bib_view.id AND 22 | varfield.varfield_type_code = 'y' AND 23 | varfield.field_content ~ 'qtl' 24 | ; 25 | -------------------------------------------------------------------------------- /readinghistory.sql: -------------------------------------------------------------------------------- 1 | SELECT reading_history.* 2 | 3 | FROM 4 | patron_record, 5 | reading_history 6 | 7 | WHERE 8 | reading_history.patron_record_metadata_id = patron_record.id 9 | AND patron_record.id = reckey2id('p1103365') -------------------------------------------------------------------------------- /recentsbyselector.sql: -------------------------------------------------------------------------------- 1 | select 2 | --id2reckey(bib_record_item_record_link.bib_record_id), 3 | --id2reckey(bib_record_order_record_link.order_record_id), 4 | --id2reckey(bib_record_item_record_link.item_record_id), 5 | vb.field_content Title, 6 | CAST (order_record_paid.paid_amount as numeric(30,2)), 7 | order_record_cmf.fund_code 8 | 9 | FROM 10 | order_record, 11 | bib_record, 12 | bib_record_order_record_link, 13 | bib_record_item_record_link, 14 | item_record, 15 | varfield vb, 16 | order_record_paid, 17 | order_record_cmf 18 | 19 | WHERE 20 | bib_record.id = bib_record_order_record_link.bib_record_id 21 | AND order_record.id = bib_record_order_record_link.order_record_id 22 | AND order_record.ocode1 = 'h' 23 | AND received_date_gmt > '2016-04-10' 24 | AND item_record.id = bib_record_item_record_link.item_record_id 25 | and bib_record.id = bib_record_item_record_link.bib_record_id 26 | AND vb.record_id = bib_record.id 27 | AND vb.varfield_type_code = 't' 28 | AND order_record_paid.order_record_id = order_record.id 29 | AND order_record.id = order_record_cmf.order_record_id -------------------------------------------------------------------------------- /savemsmnewordershsci.sql: -------------------------------------------------------------------------------- 1 | SELECT distinct 2 | 'b' || bib_view.record_num || 'a' AS record_num, 3 | bib_view.cataloging_date_gmt 4 | 5 | FROM 6 | sierra_view.bib_view, 7 | sierra_view.order_view, 8 | sierra_view.bib_record_order_record_link, 9 | sierra_view.order_record_cmf, 10 | sierra_view.fund_master 11 | WHERE 12 | bib_view.id = bib_record_order_record_link.bib_record_id 13 | AND order_view.id = bib_record_order_record_link.order_record_id 14 | AND bib_view.bcode3 = '-' 15 | AND order_view.id = order_record_cmf.order_record_id 16 | AND cast (order_record_cmf.fund_code AS INTEGER) = fund_master.code_num 17 | AND (fund_master.code = 'hscix' OR fund_master.code = 'shsci') 18 | --AND bib_view.cataloging_date_gmt > current_timestamp - interval '720 hours' 19 | 20 | ORDER BY record_num DESC 21 | 22 | LIMIT 200 23 | -------------------------------------------------------------------------------- /scratch.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | -- bib_record.record_id as bid, -- We need this id to connect bib_record to record_metadata 3 | '.b' || record_metadata.record_num || 'a' as bnum, -- I added in the '.b' at the beginning and 'a' (in place of the check digit) at the end so it looks more like a normal bib rec number. 4 | bib_record_location.location_code as bloc 5 | -- bib_record_location.display_order, -- we need this value because (I think) we want the first bib location listed. In records I checked, "multi" was the first displayed bib location 6 | -- order_record.record_id as oid, - We need this id to connect bib_record through order_record to order_record_cmf 7 | --order_record_cmf.location_code || '(' || order_record_cmf.copies || ')' as LocCopy -- concatenating fields to format the column's data 8 | FROM 9 | sierra_view.bib_record, -- the bib record 10 | sierra_view.record_metadata, -- has record_num that we need for the lookup 11 | sierra_view.bib_record_location --bib location field 12 | WHERE 13 | bib_record.record_id = record_metadata.id 14 | and record_metadata.record_type_code = 'b' 15 | and record_metadata.record_num = '4451800' 16 | -------------------------------------------------------------------------------- /serialsforeric.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | bib_view.title, 3 | bib_view.record_num, 4 | leader_field.bib_level_code 5 | FROM 6 | sierra_view.leader_field, 7 | sierra_view.bib_view 8 | WHERE 9 | leader_field.record_id = bib_view.id AND 10 | leader_field.bib_level_code = 's' 11 | 12 | LIMIT 10; 13 | -------------------------------------------------------------------------------- /showdbbloat.sql: -------------------------------------------------------------------------------- 1 | --From https://wiki.postgresql.org/wiki/Show_database_bloat 2 | SELECT 3 | current_database(), schemaname, tablename, /*reltuples::bigint, relpages::bigint, otta,*/ 4 | ROUND(CASE WHEN otta=0 THEN 0.0 ELSE sml.relpages/otta::NUMERIC END,1) AS tbloat, 5 | CASE WHEN relpages < otta THEN 0 ELSE bs*(sml.relpages-otta)::BIGINT END AS wastedbytes, 6 | iname, /*ituples::bigint, ipages::bigint, iotta,*/ 7 | ROUND(CASE WHEN iotta=0 OR ipages=0 THEN 0.0 ELSE ipages/iotta::NUMERIC END,1) AS ibloat, 8 | CASE WHEN ipages < iotta THEN 0 ELSE bs*(ipages-iotta) END AS wastedibytes 9 | FROM ( 10 | SELECT 11 | schemaname, tablename, cc.reltuples, cc.relpages, bs, 12 | CEIL((cc.reltuples*((datahdr+ma- 13 | (CASE WHEN datahdr%ma=0 THEN ma ELSE datahdr%ma END))+nullhdr2+4))/(bs-20::FLOAT)) AS otta, 14 | COALESCE(c2.relname,'?') AS iname, COALESCE(c2.reltuples,0) AS ituples, COALESCE(c2.relpages,0) AS ipages, 15 | COALESCE(CEIL((c2.reltuples*(datahdr-12))/(bs-20::FLOAT)),0) AS iotta -- very rough approximation, assumes all cols 16 | FROM ( 17 | SELECT 18 | ma,bs,schemaname,tablename, 19 | (datawidth+(hdr+ma-(CASE WHEN hdr%ma=0 THEN ma ELSE hdr%ma END)))::NUMERIC AS datahdr, 20 | (maxfracsum*(nullhdr+ma-(CASE WHEN nullhdr%ma=0 THEN ma ELSE nullhdr%ma END))) AS nullhdr2 21 | FROM ( 22 | SELECT 23 | schemaname, tablename, hdr, ma, bs, 24 | SUM((1-null_frac)*avg_width) AS datawidth, 25 | MAX(null_frac) AS maxfracsum, 26 | hdr+( 27 | SELECT 1+COUNT(*)/8 28 | FROM pg_stats s2 29 | WHERE null_frac<>0 AND s2.schemaname = s.schemaname AND s2.tablename = s.tablename 30 | ) AS nullhdr 31 | FROM pg_stats s, ( 32 | SELECT 33 | (SELECT current_setting('block_size')::NUMERIC) AS bs, 34 | CASE WHEN SUBSTRING(v,12,3) IN ('8.0','8.1','8.2') THEN 27 ELSE 23 END AS hdr, 35 | CASE WHEN v ~ 'mingw32' THEN 8 ELSE 4 END AS ma 36 | FROM (SELECT version() AS v) AS foo 37 | ) AS constants 38 | GROUP BY 1,2,3,4,5 39 | ) AS foo 40 | ) AS rs 41 | JOIN pg_class cc ON cc.relname = rs.tablename 42 | JOIN pg_namespace nn ON cc.relnamespace = nn.oid AND nn.nspname = rs.schemaname AND nn.nspname <> 'information_schema' 43 | LEFT JOIN pg_index i ON indrelid = cc.oid 44 | LEFT JOIN pg_class c2 ON c2.oid = i.indexrelid 45 | ) AS sml 46 | ORDER BY wastedbytes DESC -------------------------------------------------------------------------------- /showdbbloat2.sql: -------------------------------------------------------------------------------- 1 | SELECT current_database(), nspname AS schemaname, tblname, idxname, bs*(relpages)::bigint AS real_size, 2 | bs*(relpages-est_pages)::bigint AS extra_size, 3 | 100 * (relpages-est_pages)::float / relpages AS extra_ratio, 4 | fillfactor, bs*(relpages-est_pages_ff) AS bloat_size, 5 | 100 * (relpages-est_pages_ff)::float / relpages AS bloat_ratio, 6 | is_na 7 | -- , 100-(sub.pst).avg_leaf_density, est_pages, index_tuple_hdr_bm, maxalign, pagehdr, nulldatawidth, nulldatahdrwidth, sub.reltuples, sub.relpages -- (DEBUG INFO) 8 | FROM ( 9 | SELECT coalesce(1 + 10 | ceil(reltuples/floor((bs-pageopqdata-pagehdr)/(4+nulldatahdrwidth)::float)), 0 -- ItemIdData size + computed avg size of a tuple (nulldatahdrwidth) 11 | ) AS est_pages, 12 | coalesce(1 + 13 | ceil(reltuples/floor((bs-pageopqdata-pagehdr)*fillfactor/(100*(4+nulldatahdrwidth)::float))), 0 14 | ) AS est_pages_ff, 15 | bs, nspname, table_oid, tblname, idxname, relpages, fillfactor, is_na 16 | -- , stattuple.pgstatindex(quote_ident(nspname)||'.'||quote_ident(idxname)) AS pst, index_tuple_hdr_bm, maxalign, pagehdr, nulldatawidth, nulldatahdrwidth, reltuples -- (DEBUG INFO) 17 | FROM ( 18 | SELECT maxalign, bs, nspname, tblname, idxname, reltuples, relpages, relam, table_oid, fillfactor, 19 | ( index_tuple_hdr_bm + 20 | maxalign - CASE -- Add padding to the index tuple header to align on MAXALIGN 21 | WHEN index_tuple_hdr_bm%maxalign = 0 THEN maxalign 22 | ELSE index_tuple_hdr_bm%maxalign 23 | END 24 | + nulldatawidth + maxalign - CASE -- Add padding to the data to align on MAXALIGN 25 | WHEN nulldatawidth = 0 THEN 0 26 | WHEN nulldatawidth::integer%maxalign = 0 THEN maxalign 27 | ELSE nulldatawidth::integer%maxalign 28 | END 29 | )::numeric AS nulldatahdrwidth, pagehdr, pageopqdata, is_na 30 | -- , index_tuple_hdr_bm, nulldatawidth -- (DEBUG INFO) 31 | FROM ( 32 | SELECT 33 | i.nspname, i.tblname, i.idxname, i.reltuples, i.relpages, i.relam, a.attrelid AS table_oid, 34 | current_setting('block_size')::numeric AS bs, fillfactor, 35 | CASE -- MAXALIGN: 4 on 32bits, 8 on 64bits (and mingw32 ?) 36 | WHEN version() ~ 'mingw32' OR version() ~ '64-bit|x86_64|ppc64|ia64|amd64' THEN 8 37 | ELSE 4 38 | END AS maxalign, 39 | /* per page header, fixed size: 20 for 7.X, 24 for others */ 40 | 24 AS pagehdr, 41 | /* per page btree opaque data */ 42 | 16 AS pageopqdata, 43 | /* per tuple header: add IndexAttributeBitMapData if some cols are null-able */ 44 | CASE WHEN max(coalesce(s.null_frac,0)) = 0 45 | THEN 2 -- IndexTupleData size 46 | ELSE 2 + (( 32 + 8 - 1 ) / 8) -- IndexTupleData size + IndexAttributeBitMapData size ( max num filed per index + 8 - 1 /8) 47 | END AS index_tuple_hdr_bm, 48 | /* data len: we remove null values save space using it fractionnal part from stats */ 49 | sum( (1-coalesce(s.null_frac, 0)) * coalesce(s.avg_width, 1024)) AS nulldatawidth, 50 | max( CASE WHEN a.atttypid = 'pg_catalog.name'::regtype THEN 1 ELSE 0 END ) > 0 AS is_na 51 | FROM pg_attribute AS a 52 | JOIN ( 53 | SELECT nspname, tbl.relname AS tblname, idx.relname AS idxname, idx.reltuples, idx.relpages, idx.relam, 54 | indrelid, indexrelid, indkey::smallint[] AS attnum, 55 | coalesce(substring( 56 | array_to_string(idx.reloptions, ' ') 57 | from 'fillfactor=([0-9]+)')::smallint, 90) AS fillfactor 58 | FROM pg_index 59 | JOIN pg_class idx ON idx.oid=pg_index.indexrelid 60 | JOIN pg_class tbl ON tbl.oid=pg_index.indrelid 61 | JOIN pg_namespace ON pg_namespace.oid = idx.relnamespace 62 | WHERE pg_index.indisvalid AND tbl.relkind = 'r' AND idx.relpages > 0 63 | ) AS i ON a.attrelid = i.indexrelid 64 | JOIN pg_stats AS s ON s.schemaname = i.nspname 65 | AND ((s.tablename = i.tblname AND s.attname = pg_catalog.pg_get_indexdef(a.attrelid, a.attnum, TRUE)) -- stats from tbl 66 | OR (s.tablename = i.idxname AND s.attname = a.attname))-- stats from functionnal cols 67 | JOIN pg_type AS t ON a.atttypid = t.oid 68 | WHERE a.attnum > 0 69 | GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9 70 | ) AS s1 71 | ) AS s2 72 | JOIN pg_am am ON s2.relam = am.oid WHERE am.amname = 'btree' 73 | ) AS sub 74 | -- WHERE NOT is_na 75 | ORDER BY bloat_size desc,2,3,4; 76 | -------------------------------------------------------------------------------- /sierrabuilt.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO report.bool_set (record_metadata_id, bool_info_id) ((SELECT iiirecord.bib_record.id AS recid, 174 FROM iiirecord.bib_record WHERE (iiirecord.bib_record.id BETWEEN 420911676788 AND 420911815422) EXCEPT (SELECT DISTINCT(iiirecord.varfield.record_id), 174 FROM iiirecord.varfield WHERE (iiirecord.varfield.record_id BETWEEN 420911676788 AND 420911815422 AND iiirecord.varfield.field_type_tag = 't' AND lower(iiirecord.varfield.field_content) ILIKE E'%beginraunerrule%'))) INTERSECT ( ( (SELECT DISTINCT(iiirecord.bib_record.id) AS recid, 174 FROM iiirecord.bib_record LEFT JOIN iiirecord.bib_record_location ON iiirecord.bib_record.id = iiirecord.bib_record_location.bib_record_id WHERE (iiirecord.bib_record_location.location_code ILIKE E'%yyra%' AND iiirecord.bib_record.id BETWEEN 420911676788 AND 420911815422)) INTERSECT (SELECT DISTINCT(iiirecord.bib_record.id) AS recid, 174 FROM iiirecord.bib_record LEFT JOIN iiirecord.record_metadata ON iiirecord.bib_record.id = iiirecord.record_metadata.id WHERE (date_trunc('day', iiirecord.record_metadata.record_last_updated) > '07-14-2016' AND iiirecord.bib_record.id BETWEEN 420911676788 AND 420911815422)) ) UNION ( (SELECT DISTINCT(iiirecord.bib_record_item_record_link.bib_record_id) AS recid, 174 FROM iiirecord.bib_record_item_record_link JOIN iiirecord.item_record ON iiirecord.bib_record_item_record_link.item_record_id = iiirecord.item_record.id WHERE (iiirecord.item_record.location ILIKE E'w%' AND iiirecord.bib_record_item_record_link.bib_record_id BETWEEN 420911676788 AND 420911815422)) INTERSECT (SELECT DISTINCT(iiirecord.bib_record_item_record_link.bib_record_id) AS recid, 174 FROM iiirecord.bib_record_item_record_link JOIN iiirecord.item_record ON iiirecord.bib_record_item_record_link.item_record_id = iiirecord.item_record.id LEFT JOIN iiirecord.record_metadata ON iiirecord.item_record.id = iiirecord.record_metadata.id WHERE (date_trunc('day', iiirecord.record_metadata.record_last_updated) > '07-14-2016' AND iiirecord.bib_record_item_record_link.bib_record_id BETWEEN 420911676788 AND 420911815422)) ) ) ) ORDER BY recid LIMIT 1000 2 | -------------------------------------------------------------------------------- /skipnumvsind2.sql: -------------------------------------------------------------------------------- 1 | Select id2reckey(bib_record.id), 2 | bib_record.skip_num, 3 | varfield.marc_ind2 4 | 5 | from 6 | 7 | bib_record, 8 | varfield 9 | 10 | where bib_record.id = varfield.record_id 11 | and varfield.marc_tag = '245' 12 | and varfield.marc_ind2 != CAST (bib_record.skip_num AS CHARACTER) 13 | 14 | order by marc_ind2 15 | -------------------------------------------------------------------------------- /sortboolbyupdateddate.sql: -------------------------------------------------------------------------------- 1 | SELECT record_metadata.* 2 | 3 | FROM 4 | bool_set, 5 | record_metadata 6 | WHERE 7 | bool_set.bool_info_id = '6' 8 | AND bool_set.record_metadata_id = record_metadata.id 9 | 10 | ORDER BY record_metadata.record_last_updated_gmt -------------------------------------------------------------------------------- /spanlangfilms.sql: -------------------------------------------------------------------------------- 1 | SELECT record_num 2 | 3 | FROM 4 | (SELECT distinct 5 | 'b' || bib_view.record_num || 'a' AS record_num, 6 | bib_view.cataloging_date_gmt 7 | 8 | FROM 9 | sierra_view.bib_view, 10 | sierra_view.control_field, 11 | sierra_view.bib_record_item_record_link, 12 | sierra_view.item_record 13 | 14 | WHERE 15 | bib_view.bcode3 = E'-' --bib status 16 | AND bib_view.id = control_field.record_id 17 | AND bib_view.language_code = E'spa' 18 | AND ((control_field.control_num = 6 AND control_field.p05 || control_field.p06 = E'g') OR (bib_view.bcode1 = E'g')) --mat type or "Project" 19 | AND bib_view.cataloging_date_gmt IS DISTINCT FROM NULL 20 | AND CAST (bib_view.cataloging_date_gmt AS DATE) < CURRENT_DATE - INTERVAL '1 day' 21 | AND item_record.id = bib_record_item_record_link.item_record_id 22 | AND bib_view.id = bib_record_item_record_link.bib_record_id 23 | ORDER BY bib_view.cataloging_date_gmt desc, record_num desc 24 | limit 200 25 | ) AS foo 26 | -------------------------------------------------------------------------------- /spanlangfilmscopy.sql: -------------------------------------------------------------------------------- 1 | select bib_view.record_num, recids.cataloging_date_gmt, title 2 | from 3 | sierra_view.bib_view, 4 | sierra_view.bib_record_item_record_link, 5 | sierra_view.item_record, 6 | (( 7 | ( SELECT DISTINCT(bib_record.id) AS recid, bib_record.cataloging_date_gmt 8 | FROM sierra_view.bib_record JOIN sierra_view.control_field cf ON sierra_view.bib_record.id = cf.record_id 9 | WHERE cf.control_num = 6 AND p05 || p06 = E'g' 10 | UNION (SELECT DISTINCT(sierra_view.bib_record.id) AS recid, bib_record.cataloging_date_gmt 11 | FROM sierra_view.bib_record 12 | WHERE sierra_view.bib_record.bcode1 = E'g' 13 | ) ) 14 | 15 | INTERSECT (SELECT DISTINCT(bib_record.id) AS recid, bib_record.cataloging_date_gmt 16 | FROM sierra_view.bib_record 17 | WHERE bib_record.language_code = E'spa' 18 | AND bib_record.bcode3 = E'-' ) )) AS recids 19 | 20 | WHERE bib_view.id = recids.recid 21 | AND recids.cataloging_date_gmt IS DISTINCT FROM NULL 22 | AND CAST (recids.cataloging_date_gmt AS DATE) < CURRENT_DATE - INTERVAL '1 day' 23 | AND bib_view.id = bib_record_item_record_link.bib_record_id 24 | AND item_record.id = bib_record_item_record_link.item_record_id 25 | 26 | ORDER BY recids.cataloging_date_gmt desc, record_num desc 27 | 28 | LIMIT 200 29 | -------------------------------------------------------------------------------- /t-tagNo245.sql: -------------------------------------------------------------------------------- 1 | --Look for records that have titles with the Sierra tag 't' on them 2 | --but not the MARC tag 245. 3 | 4 | Select record_type_code || record_num 5 | FROM sierra_view.varfield_view 6 | where varfield_type_code = 't' 7 | AND marc_tag =' ' 8 | -------------------------------------------------------------------------------- /update.sql: -------------------------------------------------------------------------------- 1 | UPDATE 2 | iiirecord.varfield 3 | 4 | SET 5 | field_content='|s405-5-d testing' 6 | 7 | WHERE 8 | ( record_id=(select recid2hash('i1608022')) AND field_type_tag='y' AND marc_tag='950' AND field_content LIKE '|s%'); 9 | -------------------------------------------------------------------------------- /userpermissions.sql: -------------------------------------------------------------------------------- 1 | -- replace jhm with user login name to get listing of 2 | -- user permissions for that login. Output format is 3 | -- doctored slightly to allow easy copy / paste into a 4 | -- Twiki page where we keep lists of what permissions 5 | -- users had once we delete their accounts. 6 | SELECT 7 | ' * ('||iii_user_permission_myuser.permission_num || ') '||iii_user_permission_myuser.permission_name 8 | FROM 9 | sierra_view.iii_user_permission_myuser, 10 | sierra_view.iii_user 11 | WHERE 12 | iii_user_permission_myuser.iii_user_id = iii_user.id 13 | AND iii_user.name = 'jhm' 14 | ORDER BY name, permission_num; 15 | -------------------------------------------------------------------------------- /zerocheckouts.sql: -------------------------------------------------------------------------------- 1 | SELECT * 2 | 3 | FROM 4 | sierra_view.item_record 5 | 6 | WHERE 7 | checkout_total = '0' --------------------------------------------------------------------------------