Results 1 to 3 of 3
  1. #1
    Autoclave is offline Novice
    Windows 7 64bit Access 2010 32bit
    Join Date
    Oct 2011
    Posts
    7

    Workaround for MINUS (with Where)

    Hello, I found myself in a situation that I need a workaround for the missing MINUS operator in ACCESS.

    I'll explain in detail:
    Partners vs Tags.
    N:N relationship (One partner can have multiple tags, one tag can be assigned to multiple partners.

    I have the following tables:
    tblPartners with PartnerID as Primary key
    tblTags with TagID as Primary Key
    junction table: tblPartner_Tag with PartnerID and TagID as primary keys.

    Now I need to get a list of partners that that DO NOT have a specific tag.

    I imagine that the SQL for this (sorry if it has mistakes) should be like this

    Code:
    SELECT tblPartners.PartnerID, tblPartners.PName
    FROM tblPartners
    
    MINUS
    
    SELECT tblPartners.PartnerID, tblPartners.PName
    FROM tblPartners INNER JOIN tblPartner_Tag ON tblPartners.PartnerID = tblPartner_Tag.PartnerID 
    WHERE (((tblPartner_Tag.TagID)= 100));



    how do I implement this?
    Please keep in mind that this will be a assigned to a combox.rowsource dynamically (might be different TagID, so I cannot solve this with unmatched query wizard..)

    Thank you very much for any help

  2. #2
    Autoclave is offline Novice
    Windows 7 64bit Access 2010 32bit
    Join Date
    Oct 2011
    Posts
    7
    I found the solution with Not In

    Code:
    SELECT tblPartners.PartnerID, tblPartners.PName
    FROM tblPartners
    Where PartnerID not in (
    SELECT tblPartners.PartnerID
    FROM tblPartners INNER JOIN tblPartner_Tag ON tblPartners.PartnerID = tblPartner_Tag.PartnerID 
    WHERE (((tblPartner_Tag.TagID)= 100)));
    Is this the most efficient way? to solve this?

  3. #3
    orange's Avatar
    orange is offline Moderator
    Windows XP Access 2003
    Join Date
    Sep 2009
    Location
    Ottawa, Ontario, Canada; West Palm Beach FL
    Posts
    16,722
    Another method
    SELECT PartnerID, PName
    FROM tblPartners
    Where NOT EXISTS
    (
    SELECT *
    FROM tblPartner_Tag
    WHERE tblPartners.PartnerID = PartnerTag.PartnerID
    AND PartnerTag.PartnerID= 100
    );

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

Similar Threads

  1. Date Add 26 weeks minus 1 day
    By ker9 in forum Queries
    Replies: 3
    Last Post: 07-26-2011, 01:20 PM
  2. Time minus one for hour.
    By brianb in forum Queries
    Replies: 2
    Last Post: 03-09-2011, 11:02 AM
  3. Using wildcards with between workaround
    By rushforth in forum Queries
    Replies: 2
    Last Post: 11-10-2010, 02:12 PM
  4. Trailing Spaces workaround
    By shexe in forum Queries
    Replies: 23
    Last Post: 09-21-2010, 04:28 AM
  5. Replies: 3
    Last Post: 01-05-2010, 10:07 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