Fórum Migração Interbase 6.0.2.0 (Open Edition) para Firebird 2.1 #60899
28/09/2009
0
Virgiliomax
Curtir tópico
+ 0Posts
28/09/2009
Afarias
| da linguagem SQL. Pois, nao encontrei documentação sobre o assunto.
|Caso alguém posso ajudar, agradeço desde de já.
1) Se usa dialeto 3 ótimo! Se usa dialeto 1, migrar para o dialeto 3 pode exigir alguns cuidados com os tipos de dados.
2) Não há diferenças na linguagem SQL, apenas q no FB2 existem mais comandos/funcionalidades
3) No FB2 tb existem mais restrições. SQLs escritos de forma errada q funcionavam no IB6 não vão funcionar no Fb2. Além disso, alguns poucos SQLs (com IN principalmente) podem ficar lentos e pode ser necessário ´reescrevê-los´ para se adequar ao FB2
3) Vc deve fazer um backup da base de dados com o IB6 e restaurar com o FB2 (ou recriar um banco do zero com Fb2 e migrar os dados com alguma ferramenta)
4) Se usa algum character set (<>NONE) na base, e tiver optado por fazer um backup e restaurar, em geral é importante que faça a atualização do metadata a partir de scripts q se encontram na instalação do FB2
T+
Gostei + 0
29/09/2009
Virgiliomax
SELECT A.CLIENTE, MAX(A.NOMECLIENTE) AS NOMECLIENTE, SUM(A.valortotal) as VALORTOTAL, (SUM(A.valortotal) / (SELECT sum(t.valortotal) FROM TBRELATORIO_CURVA_ABC_CLI t WHERE t.DataVenda >=:DATA1 AND t.DataVenda <=:DATA2) * 100) AS CURVA FROM TBRELATORIO_CURVA_ABC_CLI A WHERE A.DATAVENDA >=:DATA1 AND A.DATAVENDA <=:DATA2 GROUP BY A.CLIENTE ORDER BY A.valortotal DESC
No FB2 tenho a seguinte mensage de erro:
[b:68c6f798f2]Dynamic SQL Error
SQL error code = -104
Invalid expression in the ORDER BY clause (not contained in either an aggregate function or the GROUP BY clause)[/b:68c6f798f2]
Aceito sugestões. Agradeço desde já.
Virgilio Maximiliano[/b]
Gostei + 0
29/09/2009
Afarias
No seu caso, não se pode ordenar por um campo q não está entre os ´agregadores´ ou agregados. A solução é simples... vc deseja ordenar por SUM(A.valortotal) que é a 3a. coluna, então:
ORDER BY 3 DESC
T+
Gostei + 0
29/09/2009
Virgiliomax
Tão certo como [b:be7f649a2a]1 + 1 = 2[/b:be7f649a2a] !!!
:D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)