Skip to main content

Informatica Source Qualifier (Inner Joins )

Scenario:

have an 3 tables
ENO ENAM HIREDATE
001 XXX MAY/25/2009
002 JJJJ OCT/12/2010
008 KKK JAN/02/2011
006 HJJH AUG/12/2012
ENO S-ID
001 OO
002 OO
007 OO
ENO V-ID
006 DD
008 DD
001 DD
Using informatica source qualifier or other transformations I should be able to club the above tables in such a way that if the HIREDATE>JAN/01/2011 then eno should select v-id and if HIREDATE<JAN/01/2011 the ENO should select s-id and make a target table leaving the ID columns blank based on condition IT SHOULD HAVE EITHER S-ID OR V-ID BUT NOT BOTH .
ENO ENAM HIREDATE S-ID V-ID
Please give me the best advice for the following situation.

Solution:

Better u do it in source qualifier sql query by case statement

select ENO,ENAM,HIREDATE,
CASE
WHEN (HIREDATE<JAN/01/2011
THEN table2.s-id
ELSE table3.s-id
END
from table1 a,table2 b,table3 c
where a.eno=b.eno
and b.eno=c.eno;


OR

You can use lookup .
Second table and third table can be used as lookup.

In an expression:
s_id= IF (HIREDATE<JAN/01/2011, lkp_2nd_tbl,NULL)
v_id=IF(HIREDATE>JAN/01/2011,lkp_3rd_table,NULL )

Comments

Popular posts from this blog

SQL Transformation with examples

============================================================================================= SQL Transformation with examples   Use : SQL Transformation is a connected transformation used to process SQL queries in the midstream of a pipeline . We can insert, update, delete and retrieve rows from the database at run time using the SQL transformation. Use SQL transformation in script mode to run DDL (data definition language) statements like creating or dropping the tables. The following SQL statements can be used in the SQL transformation. Data Definition Statements (CREATE, ALTER, DROP, TRUNCATE, RENAME) DATA MANIPULATION statements (INSERT, UPDATE, DELETE, MERGE) DATA Retrieval Statement (SELECT) DATA Control Language Statements (GRANT, REVOKE) Transaction Control Statements (COMMIT, ROLLBACK) Scenario: Let’s say we want to create a temporary table in mapping while workflow is running for some intermediate calculation. We can use SQL transformat...

Load the session statistics such as Session Start & End Time, Success Rows, Failed Rows and Rejected Rows etc. into a database table for audit/log purpose.

                                                                                                                                                                     ...

CMN_1650 A duplicate row was attempted to be inserted into a dynamic lookup cache Dynamic lookup error.

Scenario: I have 2 ports going through a dynamic lookup, and then to a router. In the router it is a simple case of inserting new target rows (NewRowLookup=1) or rejecting existing rows (NewRowLookup=0). However, when I run the session I'm getting the error: "CMN_1650 A duplicate row was attempted to be inserted into a dynamic lookup cache Dynamic lookup error. The dynamic lookup cache only supports unique condition keys." I thought that I was bringing through duplicate values so I put a distinct on the SQ. There is also a not null filter on both ports. However, whilst investigating the initial error that is logged for a specific pair of values from the source, there is only 1 set of them (no duplicates). The pair exists on the target so surely should just return from the dynamic lookup newrowlookup=0. Is this some kind of persistent data in the cache that is causing this to think that it is duplicate data? I haven't got the persistent cache or...