如何在talend的sql查询中传递准备好的参数

时间:2018-10-27 14:16:58

标签: talend

我有一个SQL查询,后跟另一个SQL查询。 如何将1的输出传递给2的输入。

我使用了tdbinput,然后使用了tdbrow。现在工作 我的第一个查询:

"SELECT * FROM a WHERE STAGING_STATUS='N' AND ROWNUM <= 1 order by created_date asc"



SECOND QUERY :
"SELECT
A.ID,
A.RECEIVED_DATE,
A.FILE_NAME,
B.ID AS TXN_ID,
B.MERCHANT_NUMBER,
B.TXN_DATE,
B.TXN_TIME,
B.TXN_CURRENCY_CODE,
B.TXN_VALUE,
B.TXN_TYPE,
B.RETAILER_REFERENCE
FROM ABC A ,
BCD B
WHERE A.ID=B.HDR_ID
AND A.ID = ?"

1 个答案:

答案 0 :(得分:0)

虽然很难理解您的问题,但我的假设是您试图从第一个查询的ID中提取第二个查询中的所有列。

以后请尽可能清楚地描述您的问题。

为了执行此操作,子查询或with语句将有助于将其从2条查询转换为1条,而这可能会更复杂,更密集,建立逻辑的逻辑将需要更多查询努力。

尝试:

 with first_query as (
 --only select the columns you need... 
 SELECT * 
 FROM a 
 WHERE STAGING_STATUS='N' AND ROWNUM <= 1 order by created_data asc)

SELECT
A.ID,
A.RECEIVED_DATE,
A.FILE_NAME,
B.ID AS TXN_ID,
B.MERCHANT_NUMBER,
B.TXN_DATE,
B.TXN_TIME,
B.TXN_CURRENCY_CODE,
B.TXN_VALUE,
B.TXN_TYPE,
B.RETAILER_REFERENCE
FROM ABC A ,
BCD B
WHERE A.ID=B.HDR_ID
AND A.ID in (select ID from first_query)