Versão atual:

tabelas temporárias

tenho o codigo que faz um filtro no sql, mas preciso que o alias criado em cada consulta do sql seja usado em um ultimo filtro. No cQuery3 quero fazer um select na TMP1 e na TMP2 é possível? Não usei RetSqlName por ser uma tabela temporária. Existe alguma outra função?

cQuery := " SELECT T2IVLIRRF,T2I_CTPVAL, T2G_CPFTRA,T2G_PERAPU,C9V_NOME cQuery += " FROM "+RetSQLName("T2I")+" AS T2I cQuery += " JOIN "+RetSQLName("T2G")+" AS T2G ON T2G_VERSAO = T2I_VERSAO cQuery += " JOIN "+RetSQLName("C9V")+" AS C9V ON C9V_CPF = T2G_CPFTRA cQuery += " WHERE T2I_CTPVAL ='000002' cQuery += " AND T2G.T2G_PERAPU = '" + (cData)+"' cQuery += " AND T2G.D_E_L_E_T <> '' cQuery += " AND T2I.DE_L_E_T <> '' cQuery += " GROUP BY T2I_VLIRRF, T2I_CTPVAL, T2G_CPFTRA,T2G_PERAPU, C9V_NOME cQuery += " ORDER BY C9V.C9V_NOME

dbUseArea(.T.,"TOPCONN",TcGenQry(,,ChangeQuery(cQuery)),"TMP1",.T.,.F.) dbSelectArea("TMP1")

cQuery2 := " SELECT T2I.T2IVLIRRF, T2I_CTPVAL, T2G_CPFTRA,T2G_PERAPU,C9V_NOME cQuery2 += " FROM "+RetSQLName("T2I")+" AS T2I cQuery2 += " JOIN "+RetSQLName("T2G")+" AS T2G ON T2G_VERSAO = T2I_VERSAO cQuery2 += " JOIN "+RetSQLName("C9V")+" AS C9V ON C9V_CPF = T2G_CPFTRA cQuery2 += " WHERE T2I_CTPVAL ='000007' cQuery2 += " AND T2G_PERAPU = '" + (cData)+"' cQuery2 += " AND T2G.D_E_L_E_T <> '' cQuery2 += " AND T2I.DE_L_E_T <> '' cQuery2 += " GROUP BY T2I_VLIRRF, T2I.T2I_CTPVAL,T2G.T2G_CPFTRA,T2G_PERAPU, C9V_NOME cQuery2 += " ORDER BY C9V.C9V_NOME

dbUseArea(.T.,"TOPCONN",TcGenQry(,,ChangeQuery(cQuery2)),"TMP2",.T.,.F.) dbSelectArea("TMP2")

cQuery3 := " SELECT TMP1.T2I_VLIRRF AS BASE,TMP1.T2I_VLIRRF AS DESCONTO, TMP1.T2G_CPFTRA, TMP1.C9V_NOME cQuery3 += " FROM "+("TMP1")+ " AS TMP1 cQuery3 += " INNER JOIN "+("TMP2")+" AS TMP2 ON TMP2.T2G_CPFTRA = TMP1.T2G_CPFTRA cQuery3 := ChangeQuery(cQuery3) TcQuery cQuery3 New Alias "TMP3"

Versão (1):

Ver a versão formatada

tabelas temporárias

Comentário

new question