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"

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags advpl sql ou faça a sua própria pergunta.