[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 281
  • Last Modified:

I want to use sheet 1 to filter the query on Sheet 2

I have an Excel spreadsheet, sheet 1 finds all data of merchandise that has been returned.  On sheet 2 I want to create a table that finds the location of where to put the returned items.  I can create a query that combines 2 tables on ItemKey.  However, I am getting all the data in Sheet2 instead of just the returned items.  I created an external datasource using Data -> From Other Sources -> Microsoft Query, pointing to the Big Database and getting only the following : Table1.ItemKey, Table2.ItemKey, quantity and Location. where Table1.ItemKey = Table2.ItemKey.  How do I limit the output to just the items in Sheet 1?
0
chaverly
Asked:
chaverly
  • 8
  • 5
  • 2
1 Solution
 
TommySzalapskiCommented:
Specify that it be an INNER JOIN
0
 
TommySzalapskiCommented:
If that doesn't make sense, then post the query, please.
0
 
Neil RussellTechnical Development LeadCommented:
I think what he wants to do is select the data in the two table based on the data set in the excel sheet already.

Something like (Suedo sql code)

SELECT * from Table1,Table2
WHERE Table1.id = Table2.ID
AND
Table1.ID IN ( SELECT ID FROM Excel.workbook.NamedRangeOnSheet1 )
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
TommySzalapskiCommented:
Right, but specifying inner join will do the same thing since it will only pull values that exist in both tables.
0
 
Neil RussellTechnical Development LeadCommented:
No, if sheet one only has 10 rows with unique ID's he ONLY wants those 10 records from the db not all 50,000
0
 
TommySzalapskiCommented:
Please do at least a simple Google search before arguing with another expert.
http://www.w3schools.com/sql/sql_join.asp
INNER JOIN will only pull records that exist in both tables.

It does matter what kind of query you are running though. If it's an SQL query than joins apply, otherwise you might need something else.

SELECT Table1.ItemKey, Table2.ItemKey, Table2.quantity, Table2.Location
FROM Table1 INNER JOIN Table2 ON Table1.ItemKey = Table2.ItemKey
0
 
TommySzalapskiCommented:
Some programs use JOIN in place of INNER JOIN
0
 
chaverlyAuthor Commented:
Neilsr is correct.  I want to look at an item in sheet 1 and find the corresponding 4 fields in Sheet 2 and record them on Sheet 3.
0
 
Neil RussellTechnical Development LeadCommented:
Nobody is argueing. IF you read what both the questioner AND I said you will see what your mistake is.

We KNOW how a join works. That is on the two tables in the database. HE ALSO wants to filter on the data in sheet one at the same time to reduce the subset of data returned.  

YOUR query takes into account ONLY the two tables in the external database.

So please, next time before you you critisise ME or anybody else, READ THE QUESTION AND THE COMMENTS.
0
 
TommySzalapskiCommented:
Oh, I see. I was assuming that Table1 was on Sheet1. If you do the join with sheet1 as one of the tables, it would work.
0
 
TommySzalapskiCommented:
So just join all three tables.
Sorry about all that.
0
 
Neil RussellTechnical Development LeadCommented:
OK Here goes....

I have made a few assumptions but bear with me.

In your spreadsheet assume your data in sheet1 has an Index column in column A that is your IndexKey

once you have your data in sheet 1, define a named range on column A

Now in your database you need to ad a LINKED TABLE that is infact sheet1 of your excel sheet.  So your database now has 3 tables. Table1, Table2 and your linked table called DATA1

Now you can do a Get external dataFrom another source in sheet 2 that has the following SQL Query as its source.

SELECT  Table1.IndexKey, Table1.Field1, Table1.Field2, Table1.Field3, Table2.IndexKey, Table2.F1, Table2.F2
FROM `C:\Documents and Settings\neilrsr\My Documents\Database1.accdb`.Data1 Data1, `C:\Documents and Settings\neilrsr\My Documents\Database1.accdb`.Table1 Table1, `C:\Documents and Settings\neilrsr\My Documents\Database1.accdb`.Table2 Table2
WHERE Table1.IndexKey = Table2.IndexKey AND  Table2.IndexKey = DATA1.F1

That should get your query set to return ONLY records from the database where the IndexKey is in column A of Sheet1.

0
 
Neil RussellTechnical Development LeadCommented:
You may be able to do it without the linked table by referencing sheet1 directly I dont know. Maybe TommySzalap… can advise?
0
 
chaverlyAuthor Commented:
Thank you both so much.
0
 
TommySzalapskiCommented:
There are ways to pull parameters from a query directly from cells in Excel without linked tables, but use what works for you. I don't want any points on this one anyway because I kind of made a fool of myself.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 8
  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now