Solved

need help with an Access query

Posted on 2011-03-03
18
230 Views
Last Modified: 2012-05-11
Please see attached example.

I want a list of all the award numbers in table 1 that do not have a match in table 2.  But I want Access to only search awards in table 2 that have calendar year 2009, calendar quarter 3, and last update 10/1/2009.  In this example, the list would include award numbers:  xoexf, eisld, and clien.  

I want a query where I can simply change the year, quarter, and last update and get a new list, based on those parameters.  Is this possible or do I have to separate table 2 into a table for each date within the last update field and do separate queries?
example.xlsx
0
Comment
Question by:nblassen
  • 8
  • 7
  • 3
18 Comments
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
select T1.awardnumber
table1 As T1 left join Table2 as T2
on T1.awardnumber=t2.awardnumber
where T2.year=2009 and t2.quarter=3 and t2.lastupdate=#10/1/2009# and
t2.awardnumber is null
0
 
LVL 77

Expert Comment

by:peter57r
Comment Utility
You need to create a saved query that does the selection from table2; you can use parameters for the criteria if you wish.

You can then then use the Find Unmatched query wizard , starting from table1 and using the saved query as the second table.
0
 
LVL 77

Expert Comment

by:peter57r
Comment Utility
Cap1- a rare day this is, but that SQL won't work Im afraid.  
The selection from table2 will destroy the Left join and convert it into an Inner join.

0
 

Author Comment

by:nblassen
Comment Utility
peter57r - you're right. It didn't work.  I had tried it before as well.  Do you have an alternative solution?
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility


try this then,

select T1.awardnumber
table1 As T1 left join
(select t2.awardnumber, t2.[year],t2.lastupdate from Table2 as T2
where T2.year=2009 and t2.quarter=3 and t2.lastupdate=#10/1/2009#
) as t3
on T1.awardnumber=t3.awardnumber where
t3.awardnumber is null
0
 
LVL 77

Expert Comment

by:peter57r
Comment Utility
"Do you have an alternative solution? "

in addition to the one i already posted ?
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
oops...


try this then,

select T1.awardnumber
from table1 As T1 left join
(select t2.awardnumber, t2.[year],t2.lastupdate from Table2 as T2
where T2.year=2009 and t2.quarter=3 and t2.lastupdate=#10/1/2009#
) as t3
on T1.awardnumber=t3.awardnumber where
t3.awardnumber is null
0
 

Author Comment

by:nblassen
Comment Utility
Sorry peter57r, forgot you had already posted a solution.  Thank you.
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
nblassen,
did you try the query posted at http:#a35029127
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:nblassen
Comment Utility
capricorn1:
Yes, I did, but I can't seem to get it to work.  I'm a novice user.  What is T3 in your example?  Do I need to create another table?
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
<Do I need to create another table?>  No
you will use the two tables that you have..

post the sql statement of the query you are using..

or upload a copy of the db
0
 

Author Comment

by:nblassen
Comment Utility
SELECT [Table 1].[AWARD NUMBER], [Table 2].CALENDAR_YEAR, [Table 2].CALENDAR_QUARTER, [Table 2].TIME_STAMP_OF_LAST_UPDATE
FROM [Table 1] LEFT JOIN [Table 2] ON [Table 1].[AWARD NUMBER]=[Table 2].AWARD_NUMBER
WHERE ((([Table 2].AWARD_NUMBER) Is Null) AND (([Table 2].CALENDAR_YEAR)=2009) AND (([Table 2].CALENDAR_QUARTER)=3) AND (([Table 2].TIME_STAMP_OF_LAST_UPDATE)=#10/1/2009#));
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
what fields do you want to see in the result?
0
 

Author Comment

by:nblassen
Comment Utility
I want to see the award number from Table 1.
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
copy and paste this in the SQL view of a new query


SELECT T1.[AWARD NUMBER]
FROM [Table 1] As T1 LEFT JOIN
(Select T2.CALENDAR_YEAR, T2.CALENDAR_QUARTER, T2.TIME_STAMP_OF_LAST_UPDATE From [Table 2] as T2 WHERE T2.CALENDAR_YEAR=2009 AND T2.CALENDAR_QUARTER=3 AND T2.TIME_STAMP_OF_LAST_UPDATE=#10/1/2009#) As T3
ON T1.[AWARD NUMBER]=T3.AWARD_NUMBER
WHERE T3.AWARD_NUMBER Is Null

0
 

Author Comment

by:nblassen
Comment Utility
I pasted it into the SQL view, but when I tried to run it, a pop up box appeared that said Enter Parameter Value, T3.Award_Number.

0
 
LVL 119

Accepted Solution

by:
Rey Obrero earned 500 total points
Comment Utility
oops, try this one


SELECT T1.[AWARD NUMBER]
FROM [Table 1] As T1 LEFT JOIN
(Select T2.AWARD_NUMBER,T2.CALENDAR_YEAR, T2.CALENDAR_QUARTER, T2.TIME_STAMP_OF_LAST_UPDATE From [Table 2] as T2 WHERE T2.CALENDAR_YEAR=2009 AND T2.CALENDAR_QUARTER=3 AND T2.TIME_STAMP_OF_LAST_UPDATE=#10/1/2009#) As T3
ON T1.[AWARD NUMBER]=T3.AWARD_NUMBER
WHERE T3.AWARD_NUMBER Is Null
0
 

Author Comment

by:nblassen
Comment Utility
It worked!  Thanks for all your help!
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Regardless of which version on MS Access you are using, one of the harder data-entry forms to create is one where most data from previous entries needs to be appended to new records, especially when there are numerous fields and records involved.  W…
Introduction The Visual Basic for Applications (VBA) language is at the heart of every application that you write. It is your key to taking Access beyond the world of wizards into a world where anything is possible. This article introduces you to…
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now