Advertisement
cmptrwz

Bib has parts, copy doesn't

Jul 22nd, 2014
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. SELECT acp.circ_lib, COUNT(DISTINCT acp.id)
  2. FROM asset.copy acp
  3. JOIN asset.call_number acn ON acn.id = acp.call_number
  4. JOIN biblio.monograph_part bmp ON acn.record = bmp.record
  5. LEFT JOIN asset.copy_part_map acpm ON acpm.target_copy = acp.id -- AND acpm.part = bmp.id -- Add this piece to limit to "and the part is on the correct bib", though if that changes numbers you have other issues.
  6. JOIN asset.copy_location acl ON acl.id = acp.location
  7. WHERE NOT acp.deleted AND acpm IS NULL
  8. AND acp.holdable AND acl.holdable -- Skip copies that are not holdable by copy or location, because who cares about them?
  9. --AND acp.circ_lib = 97
  10. --AND acp.circ_modifier IN ('movief', 'movienf', 'jmovief', 'jmovienf', 'movieseries');
  11. GROUP BY acp.circ_lib
  12.  
  13.  
  14. WITH bib_has_parts AS (
  15.     SELECT bmp.record, count(DISTINCT acpm.id) AS part_maps
  16.     FROM biblio.monograph_part bmp
  17.     LEFT JOIN asset.copy_part_map acpm ON acpm.part = bmp.id
  18.     GROUP BY 1
  19. )
  20. SELECT (actor.org_unit_ancestor_at_depth(acp.circ_lib, 1)).shortname, COUNT(DISTINCT acp.id) AS copies_sans_parts, COUNT(DISTINCT CASE WHEN bhp.part_maps > 0 THEN NULL ELSE acp.id END) AS copies_sans_parts_with_parted_copies
  21. FROM asset.copy acp
  22. JOIN asset.call_number acn ON acn.id = acp.call_number
  23. JOIN bib_has_parts bhp ON bhp.record = acn.record
  24. LEFT JOIN asset.copy_part_map acpm ON acpm.target_copy = acp.id
  25. JOIN asset.copy_location acl ON acl.id = acp.location
  26. JOIN config.copy_status ccs ON ccs.id = acp.status
  27. WHERE NOT acp.deleted AND acpm IS NULL
  28. AND acp.holdable AND acl.holdable AND ccs.holdable -- Skip copies that are not holdable by copy or location, because who cares about them?
  29. --AND acp.circ_lib = 97
  30. --AND acp.circ_modifier IN ('movief', 'movienf', 'jmovief', 'jmovienf', 'movieseries');
  31. GROUP BY 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement