Sumit,
From what i understand of your issue:
You are attempting to do an inner join between 2 tables in datastage via the Join Stage.
The expectation is that the join should only extract rows that qualify( i.e. where invmst.sku# = invbal .sku# and invbal .store# = 250) from the INVMST stage.
However the actual result seen is that all data present from invmst table is extracted and sent to the join stage.
Apologies,
But the expectation is invalid.
The reason is: the join process executes on the datastage server and not the database server.
the job as designed will execute 2 sql queries on the database server:
1. Select SKU#, STORE# from INVBAL where STORE# = 250
2. Select SKU#, SKU_DESC from INVMST
and get the resultset to the datastage server. Please note that the resultset for SQL 2 is a full table select ( which what you report getting)
The join is executed on the two resultsets on the datastage server.
if you need to limit the rows fetched from the database server, the aqlternative is to perform the join on the database server by using the following job design
the odbc can have the sql mentioned in your post:
select a.sku#, a.store#, b.sku_desc from invbal a,invmst b where b.sku# = a.sku# and a.store# = 250
effectively doing away with the DS Join
IHTH