Migrar de Access pra Interbase?

Firebird

04/05/2005

Venho através deste fórum tentar solucionar este problema:
tenho esta SQl feita em access e pretendo passar para o SQL do Interbase mas ele simplesmente dá erro em alguns comandos como o transform e o pivot. Deixa eu explicar o que essa consulta retorna:
- nas linhas ficam as agências agrupadas e nas colunas ficam os produtos e seus respectivos somatórios....
Por favor me ajudem pois já estou ficando maluco em tentar achar uma solução para esse problema......

TRANSFORM Sum(PROPOSTA.PREMIO) AS SomaDePREMIO
SELECT AGENCIA.NOME
FROM PRODUTO INNER JOIN (AGENCIA INNER JOIN PROPOSTA ON AGENCIA.CODAGENCIA = PROPOSTA.CODAGENCIA) ON PRODUTO.CODIGOPRODUTO = PROPOSTA.CODPRODUTO
GROUP BY AGENCIA.NOME
PIVOT PRODUTO.NOMEPLANO;


Eduardo Cocite

Eduardo Cocite

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

04/05/2005

Esse comando SQL não existe no IB/FB, vc pode tentar montar uma SP ou usar o comando CASE para tentar algo semelhante. Veja esses tópicos [url]http://forum.clubedelphi.net/viewtopic.php?t=57867[/url]
[url]http://forum.clubedelphi.net/viewtopic.php?t=59236[/url]


GOSTEI 0
Eduardo Cocite

Eduardo Cocite

04/05/2005

mas agora estou com outro problema, preciso informar um intervalo de datas para mostrar somente os somatórios que estiverem neste intervalo de datas.......

em relação ao caso anterior funcionou direito......


GOSTEI 0
Gandalf.nho

Gandalf.nho

04/05/2005

É só botar uma cláusula WHERE informando o intervalo de datas, ex:

WHERE campo_data BETWEEN :data1 AND :data2


GOSTEI 0
Eduardo Cocite

Eduardo Cocite

04/05/2005

Tenho esta query que faz o seguinte:
- Ela agrupa os produtos pelos seus devidos premios......
O que se encontra abaixo está na QryPesquisa, não consegui colocar no delphi através do QryPesquisa.SQL.add(´......´); dá erro na parte do mensal pois diz que naum é string........

SELECT AGENCIA.NOME,
SUM(PROPOSTA.PREMIO * UDF_POS(´MENSAL´, TIPO)) AS Mensal,
SUM(PROPOSTA.PREMIO * UDF_POS(´ANUAL´, TIPO)) AS ANUAL,
SUM(PROPOSTA.PREMIO * UDF_POS(´INDIVIDUAL´, TIPO)) AS INDIVIDUAL,
SUM(PROPOSTA.PREMIO * UDF_POS(´SPG´, TIPO)) AS SPG,
SUM(PROPOSTA.PREMIO * UDF_POS(´EMPRESARIAL´, TIPO)) AS EMPRESARIAL,
SUM(PROPOSTA.PREMIO * UDF_POS(´CONSORCIO´, TIPO)) AS CONSORCIO,
Sum(PROPOSTA.PREMIO) AS TOTALGERAL
FROM PRODUTO1 INNER JOIN (AGENCIA INNER JOIN PROPOSTA ON AGENCIA.CODAGENCIA = PROPOSTA.CODAGENCIA) ON PRODUTO1.CODIGOPRODUTO = PROPOSTA.CODPRODUTO
GROUP BY AGENCIA.NOME

Tenho esta query que faz o seguinte:
- Executa uma pesquisa por datas....
Esta Query se chama QryData e está digitada no Delphi

Inicio := DateToStr(DataI.Date);
Final := DateToStr(DataF.Date);
QryData.Close;
QryData.SQL.Clear;
QryData.SQL.add(´ select proposta.dataccb ´);
QryData.SQL.add(´ from proposta ´);
QryData.SQL.add(´ where ´);
QryData.SQL.add(´Dataccb >= :pInicial´);
QryData.SQL.add(´and ´);
QryData.SQL.add(´dataccb <= :pFinal order by proposta.dataccb´);
QryData.ParamByName(´pInicial´).AsDateTime := StrToDate(Inicio);
QryData.ParamByName(´pFinal´).AsDateTime := StrToDate(Final);

O meu problema é o seguinte preciso fazer uma query ou unir as querys pois tenho que agrupar por agencia e seus respectivos premios e fazer esse agrupamento por entre datas.....
Estou literalmente tomando um couro para tentar fazer isso....

Se alguém puder me ajudar agradeço e muito........


GOSTEI 0
Emerson Pereira

Emerson Pereira

04/05/2005

boa noite de uma olhada na ferramenta desse site [url]www.fullcopyconvert.com.br[/url]
GOSTEI 0
Deivison Melo

Deivison Melo

04/05/2005

Pesquise por Interbase DataPump
GOSTEI 0
POSTAR