Results 1 to 7 of 7
  1. #1
    stildawn is offline Competent Performer
    Windows 10 Office 365
    Join Date
    Oct 2013
    Posts
    185

    Explanation On This Query Code

    Hi All



    If at all possible, could someone in the know just have a look at the below Union query code and tell me what each part does and how, I need to fix it but I just dont understand it, I'm willing to learn so just need a few comments on each section so I can research and figure it out:

    Code:
    SELECT "I" AS [Action], FRT_Import_Table.ID AS SRCID, FRT_Import_Table.[POL Name], FRT_Import_Table.[POD Name], FRT_Import_Table.Carrier, FRT_Import_Table.[Contract Type], FRT_Import_Table.Contract, FRT_Import_Table.[20GP Cost], FRT_Import_Table.[40GP Cost], FRT_Import_Table.[40HC Cost], FRT_Import_Table.Notes, FRT_Import_Table.[Valid From], FRT_Import_Table.[Valid To]FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name])
    WHERE (((FRT_Import_Table.[Valid From])=[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])=[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "I" AS [Action], FRT_Import_Table.ID AS SRCID, FRT_Import_Table.[POL Name], FRT_Import_Table.[POD Name], FRT_Import_Table.Carrier, FRT_Import_Table.[Contract Type], FRT_Import_Table.Contract, FRT_Import_Table.[20GP Cost], FRT_Import_Table.[40GP Cost], FRT_Import_Table.[40HC Cost], FRT_Import_Table.Notes, FRT_Import_Table.[Valid From], FRT_Import_Table.[Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name])
    WHERE (((FRT_Import_Table.[Valid From])>[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])<[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "I" AS [Action], FRT_Import_Table.ID AS SRCID, FRT_Table.[POL Name], FRT_Table.[POD Name], FRT_Table.Carrier, FRT_Table.[Contract Type], FRT_Table.Contract, FRT_Table.[20GP Cost], FRT_Table.[40GP Cost], FRT_Table.[40HC Cost], FRT_Table.Notes, [FRT_Import_Table].[Valid To]+1 AS [Valid From], FRT_Table.[Valid To] AS [Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name]) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type])
    WHERE (((FRT_Import_Table.[Valid From])>[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])<[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "U" AS [Action], FRT_Table.ID AS SRCID, FRT_Table.[POL Name], FRT_Table.[POD Name], FRT_Table.Carrier, FRT_Table.[Contract Type], FRT_Table.Contract, FRT_Table.[20GP Cost], FRT_Table.[40GP Cost], FRT_Table.[40HC Cost], FRT_Table.Notes, FRT_Table.[Valid From], [FRT_Import_Table].[Valid From]-1 AS [Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name]) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type])
    WHERE (((FRT_Import_Table.[Valid From])>[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])<[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "I" AS [Action], FRT_Import_Table.ID AS SRCID, FRT_Table.[POL Name], FRT_Table.[POD Name], FRT_Table.Carrier, FRT_Table.[Contract Type], FRT_Table.Contract, FRT_Table.[20GP Cost], FRT_Table.[40GP Cost], FRT_Table.[40HC Cost], FRT_Table.Notes, [FRT_Import_Table].[Valid To]+1 AS [Valid From], FRT_Table.[Valid To] AS [Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name])
    WHERE (((FRT_Import_Table.[Valid From])=[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])<[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "U" AS [Action], FRT_Table.ID AS SRCID, FRT_Table.[POL Name], FRT_Table.[POD Name], FRT_Table.Carrier, FRT_Table.[Contract Type], FRT_Import_Table.Contract, FRT_Import_Table.[20GP Cost], FRT_Import_Table.[40GP Cost], FRT_Import_Table.[40HC Cost], FRT_Import_Table.Notes, FRT_Import_Table.[Valid From], FRT_Import_Table.[Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name]) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type])
    WHERE (((FRT_Import_Table.[Valid From])=[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])<[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "I" AS [Action], FRT_Import_Table.ID AS SRCID, FRT_Import_Table.[POL Name], FRT_Import_Table.[POD Name], FRT_Import_Table.Carrier, FRT_Import_Table.[Contract Type], FRT_Import_Table.Contract, FRT_Import_Table.[20GP Cost], FRT_Import_Table.[40GP Cost], FRT_Import_Table.[40HC Cost], FRT_Import_Table.Notes, FRT_Import_Table.[Valid From], FRT_Import_Table.[Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.Contract = FRT_Import_Table.Contract) AND (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name])
    WHERE (((FRT_Import_Table.[Valid From])>[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])=[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "U" AS [Action], FRT_Table.ID AS SRCID, FRT_Table.[POL Name], FRT_Table.[POD Name], FRT_Table.Carrier, FRT_Table.[Contract Type], FRT_Table.Contract, FRT_Table.[20GP Cost], FRT_Table.[40GP Cost], FRT_Table.[40HC Cost], FRT_Table.Notes, FRT_Table.[Valid From], [FRT_Import_Table].[Valid From]-1 AS [Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name]) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type]) AND (FRT_Table.Contract = FRT_Import_Table.Contract)
    WHERE (((FRT_Import_Table.[Valid From])>[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])=[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "I" AS [Action], FRT_Import_Table.ID AS SRCID, FRT_Import_Table.[POL Name], FRT_Import_Table.[POD Name], FRT_Import_Table.Carrier, FRT_Import_Table.[Contract Type], FRT_Import_Table.Contract, FRT_Import_Table.[20GP Cost], FRT_Import_Table.[40GP Cost], FRT_Import_Table.[40HC Cost], FRT_Import_Table.Notes, FRT_Import_Table.[Valid From], FRT_Import_Table.[Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name])
    WHERE (((FRT_Import_Table.[Valid From]) Between [FRT_Table].[Valid From] And [FRT_Table].[Valid To]) AND ((FRT_Import_Table.[Valid To])>[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "U" AS [Action], FRT_Table.ID AS SRCID, FRT_Table.[POL Name], FRT_Table.[POD Name], FRT_Table.Carrier, FRT_Table.[Contract Type], FRT_Table.Contract, FRT_Table.[20GP Cost], FRT_Table.[40GP Cost], FRT_Table.[40HC Cost], FRT_Table.Notes, FRT_Table.[Valid From], [FRT_Import_Table].[Valid From]-1 AS [Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name])
    WHERE (((FRT_Import_Table.[Valid From]) Between [FRT_Table].[Valid From] And [FRT_Table].[Valid To]) AND ((FRT_Import_Table.[Valid To])>[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "I" AS [Action], FRT_Import_Table.ID AS SRCID, FRT_Import_Table.[POL Name], FRT_Import_Table.[POD Name], FRT_Import_Table.Carrier, FRT_Import_Table.[Contract Type], FRT_Import_Table.Contract, FRT_Import_Table.[20GP Cost], FRT_Import_Table.[40GP Cost], FRT_Import_Table.[40HC Cost], FRT_Import_Table.Notes, FRT_Import_Table.[Valid From], FRT_Import_Table.[Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name])
    WHERE (((FRT_Import_Table.[Valid From])<[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])<[FRT_Table].[Valid To]))
    
    
    UNION
    
    
    SELECT "U" AS [Action], FRT_Table.ID AS SRCID, FRT_Table.[POL Name], FRT_Table.[POD Name], FRT_Table.Carrier, FRT_Table.[Contract Type], FRT_Table.Contract, FRT_Table.[20GP Cost], FRT_Table.[40GP Cost], FRT_Table.[40HC Cost], FRT_Table.Notes, [FRT_Import_Table].[Valid To]+1 AS [Valid From], FRT_Table.[Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name])
    WHERE (((FRT_Import_Table.[Valid From])<[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])<[FRT_Table].[Valid To]))
    
    
    UNION SELECT "U" AS [Action], FRT_Table.ID AS SRCID, FRT_Table.[POL Name], FRT_Table.[POD Name], FRT_Table.Carrier, FRT_Table.[Contract Type], FRT_Table.Contract, FRT_Table.[20GP Cost], FRT_Table.[40GP Cost], FRT_Table.[40HC Cost], FRT_Table.Notes, FRT_Import_Table.[Valid From], FRT_Import_Table.[Valid To]
    FROM FRT_Table INNER JOIN FRT_Import_Table ON (FRT_Table.[Contract Type] = FRT_Import_Table.[Contract Type]) AND (FRT_Table.Carrier = FRT_Import_Table.Carrier) AND (FRT_Table.[POD Name] = FRT_Import_Table.[POD Name]) AND (FRT_Table.[POL Name] = FRT_Import_Table.[POL Name])
    WHERE (((FRT_Import_Table.[Valid From])<=[FRT_Table].[Valid From]) AND ((FRT_Import_Table.[Valid To])>[FRT_Table].[Valid To]))
    ORDER BY [POL Name], [POD Name], Carrier, [Contract Type], [Valid From];

  2. #2
    ranman256's Avatar
    ranman256 is offline VIP
    Windows Vista Access 2010 32bit
    Join Date
    Apr 2014
    Location
    Kentucky
    Posts
    9,524
    put each 'block' into its own query, run it. you may get a better idea of its use.
    the union query can then be:

    select * from Q1
    union
    select * from Q2
    union
    select * from Q3



  3. #3
    ssanfu is offline Master of Nothing
    Windows 10 Access 2010 32bit
    Join Date
    Sep 2010
    Location
    Anchorage, Alaska, USA
    Posts
    9,664
    It looks like there are 11 queries being grouped together in one UNION query - the only difference seems to be the letter in the first column "I" or "U" of each query and the different WHERE clauses .

    What are you trying to fix??

  4. #4
    stildawn is offline Competent Performer
    Windows 10 Office 365
    Join Date
    Oct 2013
    Posts
    185
    It's not doing what I thought it does, I didnt write it so playing catch up and my access sql skills are very lacking.

    Was hoping for a brief run down of each section and then I could teach myself off that

  5. #5
    isladogs's Avatar
    isladogs is offline MVP / VIP
    Windows 10 Access 2010 32bit
    Join Date
    Jan 2014
    Location
    Somerset, UK
    Posts
    5,974
    OK I'll try to explain
    Each section of the union query is a query in its own right which selects specified data from the selected tables with specified filter conditions.
    The sections are then combined using UNION to list all the results for each individual query.
    Does that help?
    Colin, Access MVP, Website, email
    The more I learn, the more I know I don't know. When I don't know, I keep quiet!
    If I don't know that I don't know, I don't know whether to answer

  6. #6
    wvmitchell is offline Novice
    Windows 10 Access 2016
    Join Date
    Aug 2020
    Posts
    24
    Ar first glance, each section is comparing the two tables and classifying the records as I or U depending on the [Valid From] and [Valid To] dates. Then the (unique rows) sections are combined in the UNIONs.
    Does that help?

  7. #7
    stildawn is offline Competent Performer
    Windows 10 Office 365
    Join Date
    Oct 2013
    Posts
    185
    Thanks guys, forgot to say thanks, the above is pretty much what I was after and I'm learning them one by one to sort out.

    Cheers

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Replies: 12
    Last Post: 08-23-2016, 09:22 AM
  2. Replies: 3
    Last Post: 10-16-2014, 08:49 AM
  3. Replies: 2
    Last Post: 10-15-2014, 02:23 AM
  4. Replies: 1
    Last Post: 05-04-2013, 12:19 PM
  5. Explanation needed
    By thart21 in forum Queries
    Replies: 3
    Last Post: 07-16-2010, 12:44 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums