Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Problem with created temp table please help urgent

need a staff to help gather information between two sql. One of the first sql fields will be used in the second sql WHERE to filter your search, how can I solve this problem.

SQL

SELECT DISTINCT A.ORDEM_PRODUCAO,
F.COLECAO,
G.DESCR_COLECAO,
A.PROCONF_GRUPO AS REF,
C.PANO_INI_NIVEL99||'.'||C.PANO_INI_GRUPO||'.'||C.PANO_INI_SUBGRUPO||'.'||C.PANO_INI_ITEM AS TECIDO, // RESULT THIS CAMP USED IN WHERE

A.CODIGO_ESTAGIO,
D.DESCRICAO AS DESCR_EST_PROD,
A.ESTAGIO_ANTERIOR AS COD_ESTAGIO,
TO_CHAR(B.DATA_PRODUCAO, 'DD/MM/YY')||' '||TO_CHAR(B.HORA_PRODUCAO, 'HH24:MM:SS') AS DATA_PROD //Data da producao
FROM PCPC_040 A,
PCPC_045 B,
PCPT_025 C,
MQOP_005 D,
BASI_010 E,
BASI_030 F,
BASI_140 G
WHERE A.PERIODO_PRODUCAO = B.PCPC040_PERCONF
AND A.ORDEM_CONFECCAO = B.PCPC040_ORDCONF
AND A.CODIGO_ESTAGIO = B.PCPC040_ESTCONF
AND A.ORDEM_PRODUCAO = C.ORDEM_PRODUCAO
AND A.CODIGO_ESTAGIO = D.CODIGO_ESTAGIO
AND A.PROCONF_NIVEL99 = E.NIVEL_ESTRUTURA
AND A.PROCONF_GRUPO = E.GRUPO_ESTRUTURA
AND A.PROCONF_SUBGRUPO = E.SUBGRU_ESTRUTURA
AND A.PROCONF_ITEM = E.ITEM_ESTRUTURA
AND E.NIVEL_ESTRUTURA = F.NIVEL_ESTRUTURA
AND E.GRUPO_ESTRUTURA = F.REFERENCIA
AND F.COLECAO = G.COLECAO
AND F.COLECAO BETWEEN $(COL_INICIAL) AND $(COL_FINAL)
AND A.PERIODO_PRODUCAO BETWEEN $(PER_INICIAL) AND $(PER_FINAL)
AND A.PROCONF_NIVEL99 = 1;

SECOND SQL

ODBC CONNECT TO [lnlproducao;DBQ=LNLPRODUCAO ] (XUserId is UYZBDaVMYDdSGWVGaH, XPassword is NIHHCWZNEbCA);
EST_PROD:
LEFT KEEP(INF_PROD)
SELECT DISTINCT B.PANO_SBG_NIVEL99||'.'||B.PANO_SBG_GRUPO||'.'||B.PANO_SBG_SUBGRUPO||'.'||B.PANO_SBG_ITEM AS TECIDO_LNL,
A.CODIGO_ESTAGIO AS EST_LNL,
I.DESCRICAO AS DESCR_EST_LNL,
A.ORDEM_PRODUCAO AS OP_LNL,
A.DATA_INICIO||' '||TO_CHAR(A.HORA_INICIO, 'HH:MM:SS') AS DATA_PROD_LNLI,
A.DATA_TERMINO||' '||TO_CHAR(A.HORA_TERMINO, 'HH:MM:SS') AS DATA_PROD_LNLF
FROM PCPB_040 A,
PCPB_020 B,
PCPB_010 C,
PCPT_020 D,
PCPT_025 F,
BASI_010 G,
BASI_010 H,
MQOP_005 I
WHERE A.ORDEM_PRODUCAO = B.ORDEM_PRODUCAO
AND A.ORDEM_PRODUCAO = C.ORDEM_PRODUCAO
AND A.ORDEM_PRODUCAO = F.ORDEM_PRODUCAO
AND F.CODIGO_ROLO = D.CODIGO_ROLO
AND B.PANO_SBG_NIVEL99 = G.NIVEL_ESTRUTURA
AND B.PANO_SBG_GRUPO = G.GRUPO_ESTRUTURA
AND B.PANO_SBG_SUBGRUPO = G.SUBGRU_ESTRUTURA
AND B.PANO_SBG_ITEM = G.ITEM_ESTRUTURA
AND D.PANOACAB_NIVEL99 = H.NIVEL_ESTRUTURA
AND D.PANOACAB_GRUPO = H.GRUPO_ESTRUTURA
AND D.PANOACAB_SUBGRUPO = H.SUBGRU_ESTRUTURA
AND D.PANOACAB_ITEM = H.ITEM_ESTRUTURA
AND A.CODIGO_ESTAGIO = I.CODIGO_ESTAGIO
AND C.COD_CANCELAMENTO = 0
AND F.AREA_ORDEM = 2
AND B.PANO_SBG_GRUPO IN ('$(TECIDO)') // i need the result of first sql here.

AND C.PERIODO_PRODUCAO BETWEEN $(PER_INIC) AND $(PER_FIM);



1 Reply
johnw
Champion III
Champion III

You should be able to create a variable to hold all the values from the first table, then use it in the second table's SQL. Something like this (untested):

[Temp 1]:
LOAD fieldvalue(TECIDO,iterno()) as TECIDO
AUTOGENERATE 1
WHILE len(fieldvalue(TECIDO,iterno()))
;
[Temp 2]:
LOAD concat(TECIDO,chr(39)&','&chr(39)) as "Tecido List"
RESIDENT [Temp 1]
;
LET TecidoList = peek('Tecido List');

DROP TABLES
[Temp 1]
,[Temp 2]
;
ODBC...
EST_PROD:
SELECT...
FROM ...
WHERE...
AND B.PANO_SBG_GRUPO IN('$(TecidoList)')
AND...
;