Migrar de Access pra Interbase?
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;
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
Curtidas 0
Respostas
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]
[url]http://forum.clubedelphi.net/viewtopic.php?t=59236[/url]
GOSTEI 0
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......
em relação ao caso anterior funcionou direito......
GOSTEI 0
Gandalf.nho
04/05/2005
É só botar uma cláusula WHERE informando o intervalo de datas, ex:
WHERE campo_data BETWEEN :data1 AND :data2
WHERE campo_data BETWEEN :data1 AND :data2
GOSTEI 0
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........
- 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
04/05/2005
boa noite de uma olhada na ferramenta desse site [url]www.fullcopyconvert.com.br[/url]
GOSTEI 0
Deivison Melo
04/05/2005
Pesquise por Interbase DataPump
GOSTEI 0