× Linguagem de Programação ADVPL

Perguntas Select em tabela temporaria.

Mais
10 anos 11 meses atrás #14196 por nagasako
PEssoal tenho o codigo abaixo, onde o resultado teoricamente fica em cQuery2(temporário), é possível fazer um select em cQuery2 para 'juntar' os dados de cquery2 com os dados de outra tabela, exemplo SC4010?

cQuery2 := " SELECT D2_FILIAL,SUBSTRING(B1_COD,1,9) COD,SUM(D2_QUANT*ZA_VOLUME) AS [VOLUMEREAL],SUM(D2_TOTAL) AS [TOTALREAL], (SUM(D2_TOTAL)/SUM(D2_QUANT*ZA_VOLUME)) AS [PRUNITREAL], "
cQuery2 += " SUM(D2_CUSTO1) AS [CPV] "
cQuery2 += " FROM SD2010 SD2, SF4010 SF4(NOLOCK),SB1010 SB1(NOLOCK), SZA010 SZA "
cQuery2 += " WHERE SD2.D2_FILIAL = SB1.B1_FILIAL "
cQuery2 += " AND SD2.D_E_L_E_T_ <> '*' "
cQuery2 += " and SB1.D_E_L_E_T_ <> '*' "
cQuery2 += " and SF4.D_E_L_E_T_ <> '*' "
cQuery2 += " and SZA.D_E_L_E_T_ <> '*' "
cQuery2 += " AND SF4.F4_FILIAL = SD2.D2_FILIAL "
cQuery2 += " AND SUBSTRING(SB1.B1_COD,1,9) *= SUBSTRING(SD2.D2_COD,1,9) "
cQuery2 += " AND SUBSTRING(D2_COD,11,12) = ZA_COD "
cQuery2 += " AND SB1.B1_LOCPAD BETWEEN '02' AND '03' "
cQuery2 += " AND D2_TES = F4_CODIGO "
If mv_par01 = 'S'
cQuery2 += " AND SF4.F4_DUPLIC = 'S' "
ElseIf mv_par01 = 'N'
cQuery2 += " AND SF4.F4_DUPLIC = 'N' "
ElseIf mv_par01 = 'A'
EndIf
If mv_par02 = 'S'
cQuery2 += " AND SF4.F4_ESTOQUE = 'S' "
ElseIf mv_par02 = 'N'
cQuery2 += " AND SF4.F4_ESTOQUE = 'N' "
ElseIf mv_par02 = 'A'
EndIf
cQuery2 += " AND D2_TIPO = 'N' "
cQuery2 += " AND D2_CLIENTE <> 'C01762' "
cQuery2 += " AND D2_CLIENTE <> 'AGRCOM' "
cQuery2 += " AND D2_FILIAL = '01' "
cQuery2 += " AND B1_COD NOT LIKE '%.' "
cQuery2 += " AND D2_EMISSAO BETWEEN '"+dtos(mv_par03)+"' "+ "AND '"+dtos(mv_par04)+"'"
cQuery2 += " GROUP BY SUBSTRING(B1_COD,1,9),D2_FILIAL "

DbUseArea(.T.,"TOPCONN",TCGenQry(,,cQuery2),"cQuery2" ,.T. , .F. )

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 11 meses atrás #14200 por kanaamlrr
Respondido por kanaamlrr no tópico Select em tabela temporaria.
Não, pois quando você realiza esse procedimento, ele cria um arquivo de trabalho temporário e não uma tabela temporária no banco.

A forma correta seria realizar o join antes de executar a query

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.115 segundos
Joomla templates by a4joomla