ajuda com query (subselects e union all)
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!
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
Curtidas 0
Respostas
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.
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
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...
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
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