ajuda com query (subselects e union all)

Delphi

28/01/2009

Estou desenvolvendo um relatório de mum sistema de radioterapia. Delphi com firebird.
Existem diversas informações para cada campo ou região que será aplicado o feixe na pessoa.
Para a região 1 temos por exemplo: incidência do feixe, local, energia, ...
Para a região 2 vamos ter para estes campos outros valores.... e assim por diante...

Então criei uma tabela:

camcod integer primary key
camcodficha integer
camnrregiao integer
camincidenciafeixe varchar(3)
camlocal varchar(30)
camenergia varchar(10)
cambasemesa double precision
................
...............

Layout do relatório c/ dados preenchidos:

Região 1 Região 2 Região 3
incidência feixe LD LE OLD
Local Abdomen Abdomen Abdomen
Energia 6 Mev 7 Mev 6 Mev
Base da Mesa 30 50 60


Tentei fazer várias querys com union all.
Para cada query usar diversos subselects para o campo de incidencia dos feixes para cada região.
Ou seja, 3 subselects em cada query.
E assim por diante para cada campo.
Como os tipos de campos são diferentes tentei usar o comando cast para transformar para varchar(30) o resultado.
Mas não tem jeito de funcionar. Dá erro igual.
Não sei mais como resolver o problema...

Aguardo ajuda!
Obrigado!


Briciosm

Briciosm

Curtidas 0

Respostas

Edjborges

Edjborges

28/01/2009

Briciosm

Mesmo que consiga efetuar o select da forma que está propondo, com subselects e Union All a execução da consulta provavelmente ficaria muito pesada no Firebird.

Qual ferramenta de relatório está usando, pois dependendo dá pra você montar o relatório manualmente e aí sim conseguiria fazer em colunas conforme exemplo que você deu.

Outra opção seria montar seu relatório em linhas mesmo, pois assim você faria um select simples. Exemplo:

Região Incidência Feixe Local Energia Base Mesa
01 LD Abdomen 6 Mev 30
02 LE Abdomen 7 Mev 50
03 OLD Abdomen 6 Mev 60

Informe qual a ferramenta usa para gerar o relatório de repende dá pra fazer na unha.


GOSTEI 0
Briciosm

Briciosm

28/01/2009

Uso o reportbuilder.
Pensei em fazer nesse método mas o pessoal me solicitou aquele layout.
Realmente irá ficar um pouco pesado.
Tentei fazer um relatório cruzado no firebird mas não dá certo. Problema com valores...


GOSTEI 0
Edjborges

Edjborges

28/01/2009

Bem, reportbuilder não é muito minha praia, uso muito o Rave Reports e nele além de ter o console para desenvolver os relatórios, dá pra você fazer na unha, montando o relatório linha a linha, aí neste caso da pra vocë trabalhar com duas querys ou mais, não precisando fazer um mega select para confeccionar o relatório da forma que quer... Se quiser posso te passar um modelo desenvolvido linha a linha no Rave...


GOSTEI 0
POSTAR