- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Query 2 Tabelas buscando Informações dos mv_par0?
×
Linguagem de Programação ADVPL
Perguntas Query 2 Tabelas buscando Informações dos mv_par0?
- Rei_TI
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
9 anos 9 meses atrás #27262
por Rei_TI
Query 2 Tabelas buscando Informações dos mv_par0? foi criado por Rei_TI
Bom dia Pessoal
Gostaria de uma ajuda para montar uma Query.
Seguinte tenho duas tabelas que se relacionam pelo Código ZRB_COD = ZRA_COD
Tenho minhas perguntas do SX1:
putSx1(cPerg, "01", "Codigo De ?" , "", "", "mv_ch1", "C", tamSx3("ZRB_COD")[1] , 0, 0, "G", "", "ZRA2", "", "", "mv_par01")
putSx1(cPerg, "02", "Codigo Ate?" , "", "", "mv_ch2", "C", tamSx3("ZRB_COD")[1] , 0, 0, "G", "", "ZRA2", "", "", "mv_par02")
putSx1(cPerg, "03", "Saude?" , "", "", "mv_ch3", "C", tamSx3("ZRB_SAUDE")[1] , 0, 0, "C", "", "" , "", "", "mv_par03","Todas",,,,"Ruim",,,"Media",,,"Boa",,,,,,,,)
Monto minha query da seguinte maneira:
cQuery := "SELECT *"
cQuery += " FROM "+RETSQLNAME("ZRA")+" ZRA "
cQuery += " LEFT JOIN "+RETSQLNAME("ZRB")+" ZRB ON ZRB.D_E_L_E_T_='' AND ZRB_FILIAL='"+xFilial("ZRB")+"' AND ZRB_COD=ZRA_COD "
cQuery += " WHERE ZRA.D_E_L_E_T_=' ' "
cQuery += " AND ZRA_FILIAL='"+xFilial("ZRA")+"' "
cQuery += " AND ZRA_COD BETWEEN '"+mv_par01+"' AND '"+mv_par02+"'"
cQuery += " AND ZRB_SAUDE BETWEEN '"+CVALTOCHAR(mv_par03)+"'"
cQuery += " ORDER BY ZRA_COD,ZRB_COD,ZRB_ITEM "
//Se o alias estiver aberto, irei fechar, isso ajuda a evitar erros
IF Select("TRBNCM") <> 0
DbSelectArea("TRBNCM")
DbCloseArea()
ENDIF
//crio o novo alias
TCQUERY cQuery NEW ALIAS "TRBNCM" //linha 121 do meu codigo
Ao rodar apresenta o seguinte erro:
THREAD ERROR (Rei, REI-PC) 24/02/2015 09:51:28
: Error : 156 (37000) (RC=-1) - [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'ORDER'. ( From tMSSQLConnection::GetQueryFile )
Thread ID [6240] User [teste] IO [12915] Tables [5] MaxTables [5] Comment [SR_REL003 - TCPIP] Status [] SP [ ] Traced [No] InTran [No] DBEnv [MSSQL/TOTVS11] DBThread [(SPID: 52) ] Started [24/02/2015 09:51:14] LastIO [] IP [127.0.0.1:1234] RCV [105866] SND [490061] TCBuild [20131204]
SELECT * FROM ZRA990 ZRA LEFT JOIN ZRB990 ZRB ON ZRB.D_E_L_E_T_='' AND ZRB_FILIAL='01' AND ZRB_COD=ZRA_COD WHERE ZRA.D_E_L_E_T_=' ' AND ZRA_FILIAL='01' AND ZRA_COD BETWEEN '000001' AND '000010' AND ZRB_SAUDE BETWEEN '2' ORDER BY ZRA_COD,ZRB_COD,ZRB_ITEM on REPORTPRINT(TREPORT_2SECOESV2.PRW) 24/02/2015 09:44:13 line : 121
Sera que estou montando a Query da maneira correta?
Abracos.
Gostaria de uma ajuda para montar uma Query.
Seguinte tenho duas tabelas que se relacionam pelo Código ZRB_COD = ZRA_COD
Tenho minhas perguntas do SX1:
putSx1(cPerg, "01", "Codigo De ?" , "", "", "mv_ch1", "C", tamSx3("ZRB_COD")[1] , 0, 0, "G", "", "ZRA2", "", "", "mv_par01")
putSx1(cPerg, "02", "Codigo Ate?" , "", "", "mv_ch2", "C", tamSx3("ZRB_COD")[1] , 0, 0, "G", "", "ZRA2", "", "", "mv_par02")
putSx1(cPerg, "03", "Saude?" , "", "", "mv_ch3", "C", tamSx3("ZRB_SAUDE")[1] , 0, 0, "C", "", "" , "", "", "mv_par03","Todas",,,,"Ruim",,,"Media",,,"Boa",,,,,,,,)
Monto minha query da seguinte maneira:
cQuery := "SELECT *"
cQuery += " FROM "+RETSQLNAME("ZRA")+" ZRA "
cQuery += " LEFT JOIN "+RETSQLNAME("ZRB")+" ZRB ON ZRB.D_E_L_E_T_='' AND ZRB_FILIAL='"+xFilial("ZRB")+"' AND ZRB_COD=ZRA_COD "
cQuery += " WHERE ZRA.D_E_L_E_T_=' ' "
cQuery += " AND ZRA_FILIAL='"+xFilial("ZRA")+"' "
cQuery += " AND ZRA_COD BETWEEN '"+mv_par01+"' AND '"+mv_par02+"'"
cQuery += " AND ZRB_SAUDE BETWEEN '"+CVALTOCHAR(mv_par03)+"'"
cQuery += " ORDER BY ZRA_COD,ZRB_COD,ZRB_ITEM "
//Se o alias estiver aberto, irei fechar, isso ajuda a evitar erros
IF Select("TRBNCM") <> 0
DbSelectArea("TRBNCM")
DbCloseArea()
ENDIF
//crio o novo alias
TCQUERY cQuery NEW ALIAS "TRBNCM" //linha 121 do meu codigo
Ao rodar apresenta o seguinte erro:
THREAD ERROR (Rei, REI-PC) 24/02/2015 09:51:28
: Error : 156 (37000) (RC=-1) - [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'ORDER'. ( From tMSSQLConnection::GetQueryFile )
Thread ID [6240] User [teste] IO [12915] Tables [5] MaxTables [5] Comment [SR_REL003 - TCPIP] Status [] SP [ ] Traced [No] InTran [No] DBEnv [MSSQL/TOTVS11] DBThread [(SPID: 52) ] Started [24/02/2015 09:51:14] LastIO [] IP [127.0.0.1:1234] RCV [105866] SND [490061] TCBuild [20131204]
SELECT * FROM ZRA990 ZRA LEFT JOIN ZRB990 ZRB ON ZRB.D_E_L_E_T_='' AND ZRB_FILIAL='01' AND ZRB_COD=ZRA_COD WHERE ZRA.D_E_L_E_T_=' ' AND ZRA_FILIAL='01' AND ZRA_COD BETWEEN '000001' AND '000010' AND ZRB_SAUDE BETWEEN '2' ORDER BY ZRA_COD,ZRB_COD,ZRB_ITEM on REPORTPRINT(TREPORT_2SECOESV2.PRW) 24/02/2015 09:44:13 line : 121
Sera que estou montando a Query da maneira correta?
Abracos.
Por favor Acessar ou Registrar para participar da conversa.
- Rei_TI
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
9 anos 9 meses atrás - 9 anos 8 meses atrás #27264
por Rei_TI
Respondido por Rei_TI no tópico Query 2 Tabelas buscando Informações dos mv_par0?
Galera Resolvidoooo
Alterei a linha para ficar assim:
cQuery += " AND ZRB_SAUDE = '"+CVALTOCHAR(mv_par03)+"'"
Alterei a linha para ficar assim:
cQuery += " AND ZRB_SAUDE = '"+CVALTOCHAR(mv_par03)+"'"
Ultima edição: 9 anos 8 meses atrás por Rei_TI.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Query 2 Tabelas buscando Informações dos mv_par0?
Tempo para a criação da página:0.110 segundos