- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Query funciona no SQL mas dá erro no Protheus
×
Linguagem de Programação ADVPL
Perguntas Query funciona no SQL mas dá erro no Protheus
- denis86
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
11 anos 6 meses atrás #14100
por denis86
Query funciona no SQL mas dá erro no Protheus foi criado por denis86
Boa tarde!
Estou tentando executar um relatório customizado mas o mesmo está dando
erro.
"THREAD ERROR (Totvs,PC) 17/05/2013 16:10:56
: Error : 156 (37000) (RC=-1) - [Microsoft][SQL Server Native Client 10.0][SQL
Server]Sintaxe incorreta próxima à palavra-chave 'FROM'. ( From
tMSSQLConnection::GetQueryFile )"
A query foi verificada, foi realizado testes direto no Management do SQL Server e a consulta está ok, no SQL ele faz a consulta normalmente mas quando a mesma é executada no Query Analyzer (APSDU) o mesmo erro
acima é apresentado).
Estou tentando executar um relatório customizado mas o mesmo está dando
erro.
"THREAD ERROR (Totvs,PC) 17/05/2013 16:10:56
: Error : 156 (37000) (RC=-1) - [Microsoft][SQL Server Native Client 10.0][SQL
Server]Sintaxe incorreta próxima à palavra-chave 'FROM'. ( From
tMSSQLConnection::GetQueryFile )"
A query foi verificada, foi realizado testes direto no Management do SQL Server e a consulta está ok, no SQL ele faz a consulta normalmente mas quando a mesma é executada no Query Analyzer (APSDU) o mesmo erro
acima é apresentado).
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- denis86
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
11 anos 6 meses atrás - 11 anos 6 meses atrás #14107
por denis86
Respondido por denis86 no tópico Query funciona no SQL mas dá erro no Protheus
Segue ela:
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, LHR_ITEM, LHR_DESCR, LHR_QTDADE, LHQ_FUNC ,
CASE WHEN LHR_TIPMOE='1' THEN LHR_VLRREM WHEN LHR_TIPMOE<>'1'THEN 0 END LHR_VLRREM
FROM LHQ020 LHQ1 INNER JOIN LHR020 LHR ON LHR.D_E_L_E_T_ <> '*' AND LHR_FILIAL = '00' AND LHR_CODIGO = LHQ1.LHQ_CODIGO
WHERE LHQ1.D_E_L_E_T_ <> '*' AND LHQ1.LHQ_FILIAL = '00'
AND LHQ1.LHQ_EMPCLI = '99999 '
AND LHQ1.LHQ_PROJET = '999990001 0001'
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'HOSPEDAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRHOS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRHOS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS UNION SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ2 WHERE LHQ2.D_E_L_E_T_ <> '*' AND LHQ2.LHQ_FILIAL = '00'
AND LHQ2.LHQ_EMPCLI = '99999 '
AND LHQ2.LHQ_PROJET = '999990001 0001'
AND LHQ2.LHQ_VLRHOS > 0
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'PASSAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRPAS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS UNION SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRPAS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ WHERE LHQ.D_E_L_E_T_ <> '*' AND LHQ_FILIAL = '00'
AND LHQ_EMPCLI = '99999 '
AND LHQ_PROJET = '999990001 0001'
AND LHQ_VLRPAS > 0
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, LHR_ITEM, LHR_DESCR, LHR_QTDADE, LHQ_FUNC ,
CASE WHEN LHR_TIPMOE='1' THEN LHR_VLRREM WHEN LHR_TIPMOE<>'1'THEN 0 END LHR_VLRREM
FROM LHQ020 LHQ1 INNER JOIN LHR020 LHR ON LHR.D_E_L_E_T_ <> '*' AND LHR_FILIAL = '00' AND LHR_CODIGO = LHQ1.LHQ_CODIGO
WHERE LHQ1.D_E_L_E_T_ <> '*' AND LHQ1.LHQ_FILIAL = '00'
AND LHQ1.LHQ_EMPCLI = '99999 '
AND LHQ1.LHQ_PROJET = '999990001 0001'
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'HOSPEDAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRHOS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRHOS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS UNION SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ2 WHERE LHQ2.D_E_L_E_T_ <> '*' AND LHQ2.LHQ_FILIAL = '00'
AND LHQ2.LHQ_EMPCLI = '99999 '
AND LHQ2.LHQ_PROJET = '999990001 0001'
AND LHQ2.LHQ_VLRHOS > 0
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'PASSAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRPAS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS UNION SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRPAS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ WHERE LHQ.D_E_L_E_T_ <> '*' AND LHQ_FILIAL = '00'
AND LHQ_EMPCLI = '99999 '
AND LHQ_PROJET = '999990001 0001'
AND LHQ_VLRPAS > 0
Ultima edição: 11 anos 6 meses atrás por denis86.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
11 anos 6 meses atrás #14111
por kanaamlrr
Respondido por kanaamlrr no tópico Query funciona no SQL mas dá erro no Protheus
o erro tá ali
tem 2 "FROM" no mesmo trecho
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, LHR_ITEM, LHR_DESCR, LHR_QTDADE, LHQ_FUNC ,
CASE WHEN LHR_TIPMOE='1' THEN LHR_VLRREM WHEN LHR_TIPMOE<>'1'THEN 0 END LHR_VLRREM
FROM LHQ020 LHQ1 INNER JOIN LHR020 LHR ON LHR.D_E_L_E_T_ <> '*' AND LHR_FILIAL = '00' AND LHR_CODIGO = LHQ1.LHQ_CODIGO
WHERE LHQ1.D_E_L_E_T_ <> '*' AND LHQ1.LHQ_FILIAL = '00'
AND LHQ1.LHQ_EMPCLI = '99999 '
AND LHQ1.LHQ_PROJET = '999990001 0001'
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'HOSPEDAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRHOS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRHOS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS UNION SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ2 WHERE LHQ2.D_E_L_E_T_ <> '*' AND LHQ2.LHQ_FILIAL = '00'
AND LHQ2.LHQ_EMPCLI = '99999 '
AND LHQ2.LHQ_PROJET = '999990001 0001'
AND LHQ2.LHQ_VLRHOS > 0
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'PASSAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRPAS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS UNION SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRPAS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ WHERE LHQ.D_E_L_E_T_ <> '*' AND LHQ_FILIAL = '00'
AND LHQ_EMPCLI = '99999 '
AND LHQ_PROJET = '999990001 0001'
AND LHQ_VLRPAS > 0
tem 2 "FROM" no mesmo trecho
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, LHR_ITEM, LHR_DESCR, LHR_QTDADE, LHQ_FUNC ,
CASE WHEN LHR_TIPMOE='1' THEN LHR_VLRREM WHEN LHR_TIPMOE<>'1'THEN 0 END LHR_VLRREM
FROM LHQ020 LHQ1 INNER JOIN LHR020 LHR ON LHR.D_E_L_E_T_ <> '*' AND LHR_FILIAL = '00' AND LHR_CODIGO = LHQ1.LHQ_CODIGO
WHERE LHQ1.D_E_L_E_T_ <> '*' AND LHQ1.LHQ_FILIAL = '00'
AND LHQ1.LHQ_EMPCLI = '99999 '
AND LHQ1.LHQ_PROJET = '999990001 0001'
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'HOSPEDAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRHOS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRHOS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS UNION SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ2 WHERE LHQ2.D_E_L_E_T_ <> '*' AND LHQ2.LHQ_FILIAL = '00'
AND LHQ2.LHQ_EMPCLI = '99999 '
AND LHQ2.LHQ_PROJET = '999990001 0001'
AND LHQ2.LHQ_VLRHOS > 0
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'PASSAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRPAS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS UNION SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRPAS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ WHERE LHQ.D_E_L_E_T_ <> '*' AND LHQ_FILIAL = '00'
AND LHQ_EMPCLI = '99999 '
AND LHQ_PROJET = '999990001 0001'
AND LHQ_VLRPAS > 0
Por favor Acessar ou Registrar para participar da conversa.
- denis86
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
11 anos 6 meses atrás #14120
por denis86
Respondido por denis86 no tópico Query funciona no SQL mas dá erro no Protheus
A query estava mal identada mas não era dois FROM juntos, tem um select e um union no meio.
Essa query se cada bloco for executado separadamente, sem union, funciona normalmente no protheus mas se juntar os blocos com union dá esse erro, no SQL Server Management Studio roda funciona sem erro.
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, LHR_ITEM, LHR_DESCR, LHR_QTDADE, LHQ_FUNC ,
CASE WHEN LHR_TIPMOE='1' THEN LHR_VLRREM WHEN LHR_TIPMOE<>'1'THEN 0 END LHR_VLRREM
FROM LHQ020 LHQ1 INNER JOIN LHR020 LHR ON LHR.D_E_L_E_T_ <> '*' AND LHR_FILIAL = '00' AND LHR_CODIGO = LHQ1.LHQ_CODIGO
WHERE LHQ1.D_E_L_E_T_ <> '*' AND LHQ1.LHQ_FILIAL = '00'
AND LHQ1.LHQ_EMPCLI = '99999 '
AND LHQ1.LHQ_PROJET = '999990001 0001'
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'HOSPEDAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRHOS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRHOS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ2 WHERE LHQ2.D_E_L_E_T_ <> '*' AND LHQ2.LHQ_FILIAL = '00'
AND LHQ2.LHQ_EMPCLI = '99999 '
AND LHQ2.LHQ_PROJET = '999990001 0001'
AND LHQ2.LHQ_VLRHOS > 0
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'PASSAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRPAS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRPAS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ WHERE LHQ.D_E_L_E_T_ <> '*' AND LHQ_FILIAL = '00'
AND LHQ_EMPCLI = '99999 '
AND LHQ_PROJET = '999990001 0001'
AND LHQ_VLRPAS > 0
Essa query se cada bloco for executado separadamente, sem union, funciona normalmente no protheus mas se juntar os blocos com union dá esse erro, no SQL Server Management Studio roda funciona sem erro.
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, LHR_ITEM, LHR_DESCR, LHR_QTDADE, LHQ_FUNC ,
CASE WHEN LHR_TIPMOE='1' THEN LHR_VLRREM WHEN LHR_TIPMOE<>'1'THEN 0 END LHR_VLRREM
FROM LHQ020 LHQ1 INNER JOIN LHR020 LHR ON LHR.D_E_L_E_T_ <> '*' AND LHR_FILIAL = '00' AND LHR_CODIGO = LHQ1.LHQ_CODIGO
WHERE LHQ1.D_E_L_E_T_ <> '*' AND LHQ1.LHQ_FILIAL = '00'
AND LHQ1.LHQ_EMPCLI = '99999 '
AND LHQ1.LHQ_PROJET = '999990001 0001'
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'HOSPEDAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRHOS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRHOS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ2 WHERE LHQ2.D_E_L_E_T_ <> '*' AND LHQ2.LHQ_FILIAL = '00'
AND LHQ2.LHQ_EMPCLI = '99999 '
AND LHQ2.LHQ_PROJET = '999990001 0001'
AND LHQ2.LHQ_VLRHOS > 0
UNION ALL
SELECT LHQ_CODIGO, LHQ_EMISS, LHQ_PEDIDO, '000' LHR_ITEM, 'PASSAGEM' LHR_DESCR, 1 LHR_QTDADE, LHQ_FUNC ,
CASE WHEN '1'='1' THEN LHQ_VLRPAS
WHEN (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) =0 THEN 0
ELSE (LHQ_VLRPAS* (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*') ) / (SELECT TOP 1 CASE WHEN '1'='2' THEN M2_MOEDA2
ELSE 1 END TAXA FROM SM2020 SM2
WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA IN (SELECT MIN(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*' AND M2_DATA >= LHQ_EMISS
UNION ALL
SELECT MAX(M2_DATA) M2_DATA
FROM SM2020 SM2 WHERE SM2.D_E_L_E_T_<>'*') ) ) END LHR_VLRREM
FROM LHQ020 LHQ WHERE LHQ.D_E_L_E_T_ <> '*' AND LHQ_FILIAL = '00'
AND LHQ_EMPCLI = '99999 '
AND LHQ_PROJET = '999990001 0001'
AND LHQ_VLRPAS > 0
Por favor Acessar ou Registrar para participar da conversa.
- henry.charriere
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
11 anos 5 meses atrás #14256
por henry.charriere
Respondido por henry.charriere no tópico Query funciona no SQL mas dá erro no Protheus
Denis, elas estão rodando separadamente porque o Union está com um pequeno problema;
1 - Quando você faz union a quantidade de colocar deverá ser a mesma em todas as consultas, pelo que vi da sua consulta não está assim.
Até agora vi só isso!
1 - Quando você faz union a quantidade de colocar deverá ser a mesma em todas as consultas, pelo que vi da sua consulta não está assim.
Até agora vi só isso!
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Query funciona no SQL mas dá erro no Protheus
Tempo para a criação da página:0.128 segundos