×
Linguagem de Programação ADVPL
Perguntas QUERY
- manoelcarlosjunior
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 116
- Obrigados Recebidos: 0
9 anos 10 meses atrás #26695
por manoelcarlosjunior
QUERY foi criado por manoelcarlosjunior
Bom dia Pessoal gostaria de saber como faço para comparar em SQL parte de um de um campo com outro.
Exemplo.:
AB4_NUMOS = '00003301'
AB6_NUMOS = '000033'
Quer AB6_NUMOS seja igual a os 6 primeiros dígitos de AB4_NUMOS
pra jogar em uma clausula where ou num left join...
Se puderem me ajudar ...
Abraço,
Manoel Carlos Júnior
Exemplo.:
AB4_NUMOS = '00003301'
AB6_NUMOS = '000033'
Quer AB6_NUMOS seja igual a os 6 primeiros dígitos de AB4_NUMOS
pra jogar em uma clausula where ou num left join...
Se puderem me ajudar ...
Abraço,
Manoel Carlos Júnior
Por favor Acessar ou Registrar para participar da conversa.
- afppellegrini
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 16
- Obrigados Recebidos: 0
9 anos 10 meses atrás #26696
por afppellegrini
Respondido por afppellegrini no tópico QUERY
Boa Tarde Manoel,
Você pode utilizar a função Substr
Ex:
substr(AB4_NUMOS , 1, 6) = AB6_NUMOS
Esperto ter ajudado!
Obrigado!
Você pode utilizar a função Substr
Ex:
substr(AB4_NUMOS , 1, 6) = AB6_NUMOS
Esperto ter ajudado!
Obrigado!
Por favor Acessar ou Registrar para participar da conversa.
- manoelcarlosjunior
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 116
- Obrigados Recebidos: 0
9 anos 10 meses atrás #26699
por manoelcarlosjunior
Respondido por manoelcarlosjunior no tópico QUERY
Obriagado Andre Pellegrini me ajudou Bastante, só que quando faço no SQL executa normal mais no ponto de entrada em advpl ele não funciona.
Preciso fazer essas alteações automatística na rotina AB6_XORCA = AB4_NUMORC, AB6_XCHAM = AB4_NRCHAM
Segue abaixo o código.
Se puder me ajudar?!
Abraço
Manoel Carlos Júnior
User Function AT400GOS() // Ponto de entrada ja usado pela totvs
Local aArea := GetArea()
Local cQry := ""
cQry += " UPDATE "
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_ZZCLI = A1_NREDUZ "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " SA1010 SA1 "
cQry += " ON "
cQry += " AB6_CODCLI = A1_COD "
cQry += " AND "
cQry += " AB6_LOJA = A1_LOJA "
cQry += " AND "
cQry += " SA1.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' "
TCSQLExec(cQry)
RestArea(aArea)
Return
/************************************************************************************************/
User Function AT400GOS() // com os campo que eu preciso alterar automatica mente na rotina
Local aArea := GetArea()
Local cQry := ""
cQry += " UPDATE "
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_ZZCLI = A1_NREDUZ "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " SA1010 SA1 "
cQry += " ON "
cQry += " AB6_CODCLI = A1_COD "
cQry += " AND "
cQry += " AB6_LOJA = A1_LOJA "
cQry += " AND "
cQry += " SA1.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' "
cQry += " UPDATE " // a partir daqui minha alteração
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_XORCA = AB4_NUMORC, AB6_XCHAM = AB4_NRCHAM "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " AB4010 AB4 "
cQry += " ON "
cQry += " AB6_FILIAL = AB4_FILIAL"
cQry += " AND "
cQry += " AB6_NUMOS = Left( AB4_NUMOS,6)"
cQry += " AND "
cQry += " AB4.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' "
TCSQLExec(cQry)
RestArea(aArea)
Return
Preciso fazer essas alteações automatística na rotina AB6_XORCA = AB4_NUMORC, AB6_XCHAM = AB4_NRCHAM
Segue abaixo o código.
Se puder me ajudar?!
Abraço
Manoel Carlos Júnior
User Function AT400GOS() // Ponto de entrada ja usado pela totvs
Local aArea := GetArea()
Local cQry := ""
cQry += " UPDATE "
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_ZZCLI = A1_NREDUZ "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " SA1010 SA1 "
cQry += " ON "
cQry += " AB6_CODCLI = A1_COD "
cQry += " AND "
cQry += " AB6_LOJA = A1_LOJA "
cQry += " AND "
cQry += " SA1.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' "
TCSQLExec(cQry)
RestArea(aArea)
Return
/************************************************************************************************/
User Function AT400GOS() // com os campo que eu preciso alterar automatica mente na rotina
Local aArea := GetArea()
Local cQry := ""
cQry += " UPDATE "
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_ZZCLI = A1_NREDUZ "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " SA1010 SA1 "
cQry += " ON "
cQry += " AB6_CODCLI = A1_COD "
cQry += " AND "
cQry += " AB6_LOJA = A1_LOJA "
cQry += " AND "
cQry += " SA1.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' "
cQry += " UPDATE " // a partir daqui minha alteração
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_XORCA = AB4_NUMORC, AB6_XCHAM = AB4_NRCHAM "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " AB4010 AB4 "
cQry += " ON "
cQry += " AB6_FILIAL = AB4_FILIAL"
cQry += " AND "
cQry += " AB6_NUMOS = Left( AB4_NUMOS,6)"
cQry += " AND "
cQry += " AB4.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' "
TCSQLExec(cQry)
RestArea(aArea)
Return
Por favor Acessar ou Registrar para participar da conversa.
- afppellegrini
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 16
- Obrigados Recebidos: 0
9 anos 10 meses atrás #26700
por afppellegrini
Respondido por afppellegrini no tópico QUERY
Bom dia,
Veja se funciona dessa forma:
**Obs. Não esqueça de colocar os includes.
Espero ter ajudado!
Obrigado!
Veja se funciona dessa forma:
User Function AT400GOS() // com os campo que eu preciso alterar automatica mente na rotina
Local aArea := GetArea()
Local cQry := ""
cQry += " UPDATE "
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_ZZCLI = A1_NREDUZ "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " SA1010 SA1 "
cQry += " ON "
cQry += " AB6_CODCLI = A1_COD "
cQry += " AND "
cQry += " AB6_LOJA = A1_LOJA "
cQry += " AND "
cQry += " SA1.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' "
If (TCSQLExec(cQry) < 0)
Return MsgStop("TCSQLError() " + TCSQLError())
EndIf
//Você tem que separar com pelo menos um ; (ponto e virgula) para executar duas sentenças SQL. Mas aconselho a executar uma por vez.
cQry := ""
cQry += " UPDATE " // a partir daqui minha alteração
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_XORCA = AB4_NUMORC, AB6_XCHAM = AB4_NRCHAM "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " AB4010 AB4 "
cQry += " ON "
cQry += " AB6_FILIAL = AB4_FILIAL"
cQry += " AND "
cQry += " AB6_NUMOS = Left( AB4_NUMOS,6)"
cQry += " AND "
cQry += " AB4.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' "
If (TCSQLExec(cQry) < 0)
Return MsgStop("TCSQLError() " + TCSQLError())
EndIf
RestArea(aArea)
Return
**Obs. Não esqueça de colocar os includes.
Espero ter ajudado!
Obrigado!
Por favor Acessar ou Registrar para participar da conversa.
- manoelcarlosjunior
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 116
- Obrigados Recebidos: 0
9 anos 10 meses atrás #26701
por manoelcarlosjunior
Respondido por manoelcarlosjunior no tópico QUERY
Cara não da erro nem nada mais não preenche o campo automatico, estranho é que quando pego a query mesmo as duas juntas no SQL funciona normal o UPDATE......
Bom to tentando por aqui
Muito obrigado André !!!
Bom to tentando por aqui
Muito obrigado André !!!
Por favor Acessar ou Registrar para participar da conversa.
- manoelcarlosjunior
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 116
- Obrigados Recebidos: 0
9 anos 10 meses atrás #26734
por manoelcarlosjunior
Respondido por manoelcarlosjunior no tópico QUERY
É TEEETRAAAA!
Consegui Galera !!! Valeu o apoio de Vocês !!!
Foi erro de sintaxe mesmo !!! A peça a frente do computador rsrsr
Abraço
Query errada
cQry += " UPDATE " // Update analista totvs
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_ZZCLI = A1_NREDUZ "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " SA1010 SA1 "
cQry += " ON "
cQry += " AB6_CODCLI = A1_COD "
cQry += " AND "
cQry += " AB6_LOJA = A1_LOJA "
cQry += " AND "
cQry += " SA1.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' "
cQry += " "
cQry += " UPDATE " // a partir daqui minha alteração
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_XORCA = AB4_NUMORC, AB6_XCHAM = AB4_NRCHAM "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " AB4010 AB4 "
cQry += " ON "
cQry += " AB6_FILIAL = AB4_FILIAL"
cQry += " AND "
cQry += " AB6_NUMOS = Left( AB4_NUMOS,6)"
cQry += " AND "
cQry += " AB4.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' " Ja mencionado no primeiro update
cQry += " UPDATE " // a partir daqui minha alteração Manoel Carlos Junior 06/01/2015 Corrigida
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_XORCA = AB4_NUMORC, AB6_XCHAM = AB4_NRCHAM "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " AB4010 AB4 "
cQry += " ON "
cQry += " AB6_FILIAL = AB4_FILIAL"
cQry += " AND "
cQry += " AB6_NUMOS = Left( AB4_NUMOS,6)"
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = ‘‘ "
cQry += " AND "
cQry += " AB4.D_E_L_E_T_ = ‘‘ "
Consegui Galera !!! Valeu o apoio de Vocês !!!
Foi erro de sintaxe mesmo !!! A peça a frente do computador rsrsr
Abraço
Query errada
cQry += " UPDATE " // Update analista totvs
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_ZZCLI = A1_NREDUZ "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " SA1010 SA1 "
cQry += " ON "
cQry += " AB6_CODCLI = A1_COD "
cQry += " AND "
cQry += " AB6_LOJA = A1_LOJA "
cQry += " AND "
cQry += " SA1.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' "
cQry += " "
cQry += " UPDATE " // a partir daqui minha alteração
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_XORCA = AB4_NUMORC, AB6_XCHAM = AB4_NRCHAM "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " AB4010 AB4 "
cQry += " ON "
cQry += " AB6_FILIAL = AB4_FILIAL"
cQry += " AND "
cQry += " AB6_NUMOS = Left( AB4_NUMOS,6)"
cQry += " AND "
cQry += " AB4.D_E_L_E_T_ = '' "
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = '' "
cQry += " AND "
cQry += " AB6_ZZCLI = '' " Ja mencionado no primeiro update
cQry += " UPDATE " // a partir daqui minha alteração Manoel Carlos Junior 06/01/2015 Corrigida
cQry += " AB6010 "
cQry += " SET "
cQry += " AB6_XORCA = AB4_NUMORC, AB6_XCHAM = AB4_NRCHAM "
cQry += " FROM "
cQry += " AB6010 AB6 "
cQry += " LEFT JOIN "
cQry += " AB4010 AB4 "
cQry += " ON "
cQry += " AB6_FILIAL = AB4_FILIAL"
cQry += " AND "
cQry += " AB6_NUMOS = Left( AB4_NUMOS,6)"
cQry += " WHERE "
cQry += " AB6.D_E_L_E_T_ = ‘‘ "
cQry += " AND "
cQry += " AB4.D_E_L_E_T_ = ‘‘ "
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.146 segundos