Skip to main content
ExLibris

Knowledge Assistant

BETA
 
  • Subscribe by RSS
  • Back
    Voyager

     

    Ex Libris Knowledge Center
    1. Search site
      Go back to previous article
      1. Sign in
        • Sign in
        • Forgot password
    1. Home
    2. Voyager
    3. Knowledge Articles
    4. What are Union Queries in Voyager Prepackaged Access Reports?

    What are Union Queries in Voyager Prepackaged Access Reports?

    1. Last updated
    2. Save as PDF
    3. Share
      1. Share
      2. Tweet
      3. Share
    1. Question
    2. Answer
    • Product: Voyager
    • Relevant for Installation Type: Multi-Tenant Direct, Dedicated-Direct, Local, TotalCare

     

    Question

    What are Union Queries in Voyager Prepackaged Access Reports?

    Answer

    The Standard "Inner" and Special "Outer" Joins that we use in Access imply a "horizontal" relationship between two tables.  Tables in Union Queries imply more of a "vertical" relationship.

    A union query takes two (or more!) tables with the same fields and makes one longer table out of them.

    An out-of-the-box example in your Reports.MDB file is: "Circulation Transactions (Charges)". Take a look at it.

    You'll note that this query displays in a section at the bottom of your Queries Navigation Pane, and that it has a different sort of icon that looks like this:

    clipboard_efd18b66da1d0d987eba9f46161cc0f76.png

    The  "Circulation Transactions (Charges)" Union Query takes two tables with the same fields and makes one longer table out of them.

    In Access, Union Queries are SQL-Only queries, and can't be displayed in "Design View".

    The two tables (or the fields you select from them)  have the exact same fields.

     

    Example (Charge-only for items returned and Renewal Circulation Statistics):

    SELECT LOCATION_CODE, PATRON_GROUP_CODE, CHARGE_DATE AS TRANS_DATE
    FROM (PATRON_GROUP INNER JOIN CIRC_TRANS_ARCHIVE ON
    PATRON_GROUP.PATRON_GROUP_ID = CIRC_TRANS_ARCHIVE.PATRON_GROUP_ID)
    INNER JOIN LOCATION ON CIRC_TRANS_ARCHIVE.CHARGE_LOCATION =
    LOCATION.LOCATION_ID
    UNION
    SELECT LOCATION_CODE, PATRON_GROUP_CODE, RENEW_DATE AS TRANS_DATE
    FROM ((RENEW_TRANS_ARCHIVE INNER JOIN CIRC_TRANS_ARCHIVE ON
    RENEW_TRANS_ARCHIVE.CIRC_TRANSACTION_ID =
    CIRC_TRANS_ARCHIVE.CIRC_TRANSACTION_ID) INNER JOIN PATRON_GROUP ON
    CIRC_TRANS_ARCHIVE.PATRON_GROUP_ID = PATRON_GROUP.PATRON_GROUP_ID)
    INNER JOIN LOCATION ON RENEW_TRANS_ARCHIVE.RENEW_LOCATION =
    LOCATION.LOCATION_ID;

     

    clipboard_eae51f32947e845ad1362aa11b0ab35fd.png

     

    Example (For all Circulation Statistics):

    SELECT LOCATION_CODE, PATRON_GROUP_CODE, CHARGE_DATE AS TRANS_DATE
    FROM (PATRON_GROUP INNER JOIN CIRC_TRANS_ARCHIVE ON PATRON_GROUP.PATRON_GROUP_ID
    = CIRC_TRANS_ARCHIVE.PATRON_GROUP_ID) INNER
    JOIN LOCATION ON CIRC_TRANS_ARCHIVE.CHARGE_LOCATION = LOCATION.LOCATION_ID
    UNION
    SELECT LOCATION_CODE, PATRON_GROUP_CODE, RENEW_DATE AS TRANS_DATE
    FROM ((RENEW_TRANS_ARCHIVE INNER JOIN CIRC_TRANS_ARCHIVE ON
    RENEW_TRANS_ARCHIVE.CIRC_TRANSACTION_ID =
    CIRC_TRANS_ARCHIVE.CIRC_TRANSACTION_ID) INNER JOIN PATRON_GROUP ON
    CIRC_TRANS_ARCHIVE.PATRON_GROUP_ID = PATRON_GROUP.PATRON_GROUP_ID) INNER JOIN
    LOCATION ON RENEW_TRANS_ARCHIVE.RENEW_LOCATION = LOCATION.LOCATION_ID
    UNION
    SELECT LOCATION_CODE, PATRON_GROUP_CODE, CHARGE_DATE AS TRANS_DATE
    FROM (PATRON_GROUP INNER JOIN CIRC_TRANSACTIONS ON PATRON_GROUP.PATRON_GROUP_ID =
    CIRC_TRANSACTIONS.PATRON_GROUP_ID) INNER JOIN LOCATION ON
    CIRC_TRANSACTIONS.CHARGE_LOCATION = LOCATION.LOCATION_ID
    UNION
    SELECT LOCATION_CODE, PATRON_GROUP_CODE, RENEW_DATE AS TRANS_DATE
    FROM ((RENEW_TRANSACTIONS INNER JOIN CIRC_TRANSACTIONS ON
    RENEW_TRANSACTIONS.CIRC_TRANSACTION_ID = CIRC_TRANSACTIONS.CIRC_TRANSACTION_ID)
    INNER JOIN PATRON_GROUP ON CIRC_TRANSACTIONS.PATRON_GROUP_ID =
    PATRON_GROUP.PATRON_GROUP_ID) INNER JOIN LOCATION ON
    RENEW_TRANSACTIONS.RENEW_LOCATION = LOCATION.LOCATION_ID;

     

    Be aware of the difference between the two "Union" SQL Keywords:
    UNION Combines two tables into one long table
    UNION ALL Does a UNION, but does not delete duplicate records (this can be a “gotcha” when looking at, for example, circulation data)

     

    Constructing custom SQL queries by request and troubleshooting unexpected results from customer-created SQL queries falls outside the scope of Support. The above has been posted for informational purposes.  Voyager-L and Developer Network are useful resources for finding helpful custom SQL or obtaining assistance from peers in troubleshooting custom queries.


    • Article last edited: 03-Mar-2021
    View article in the Exlibris Knowledge Center
    1. Back to top
      • What are the values for RENEW_TYPE?
      • What are values in CIRC_TRANSACTIONS.CHARGE_TYPE?
    • Was this article helpful?

    Recommended articles

    1. Article type
      Topic
      Content Type
      Knowledge Article
      Language
      English
      Product
      Voyager
    2. Tags
      This page has no tags.
    1. © Copyright 2025 Ex Libris Knowledge Center
    2. Powered by CXone Expert ®
    • Term of Use
    • Privacy Policy
    • Contact Us
    2025 Ex Libris. All rights reserved