[firebase-br] Ajuda criação de Consulta complexa - Firebird 2.1.3
Valdir Marcos
valdir.marcos em ig.com.br
Sex Out 16 10:09:01 -03 2009
Bom dia.
Talvez esse caminho ajude:
Select 1, ID, AVALIADOR, DT_INICIO, DT_FIM, GRAU_1, GRAU_2, GRAU_3, (GRAU_1
+ GRAU_2 + GRAU_3) as TOTAL, Null as AVALIACAO_FINAL From Tabela Where ID =
1
Union
Select 2, ID, AVALIADOR, DT_INICIO, DT_FIM, GRAU_1, GRAU_2, GRAU_3, (GRAU_1
+ GRAU_2 + GRAU_3), Null From Tabela Where ID = 2
Union
Select 3, ID, AVALIADOR, DT_INICIO, DT_FIM, GRAU_1, GRAU_2, GRAU_3, (GRAU_1
+ GRAU_2 + GRAU_3), Null From Tabela Where ID = 3
Union
Select 4, ID, AVALIADOR, DT_INICIO, DT_FIM, GRAU_1, GRAU_2, GRAU_3, (GRAU_1
+ GRAU_2 + GRAU_3), Null From Tabela Where ID = 4
Union
Select 5, ID, AVALIADOR, DT_INICIO, DT_FIM, GRAU_1, GRAU_2, GRAU_3, (GRAU_1
+ GRAU_2 + GRAU_3), Null From Tabela Where ID = 5
Union
Select 6, ID, AVALIADOR, DT_INICIO, DT_FIM, GRAU_1, GRAU_2, GRAU_3, (GRAU_1
+ GRAU_2 + GRAU_3), Null From Tabela Where ID = 6
Union
Select 7, ID, AVALIADOR, DT_INICIO, DT_FIM, GRAU_1, GRAU_2, GRAU_3, (GRAU_1
+ GRAU_2 + GRAU_3), Null From Tabela Where ID = 7
Union
Select 8, ID, AVALIADOR, DT_INICIO, DT_FIM, GRAU_1, GRAU_2, GRAU_3, (GRAU_1
+ GRAU_2 + GRAU_3), Null From Tabela Where ID = 8
Union
Select 9, Null, 'AVALIAÇÃO FINAL', Null, Null, Null, Null, Null, Null,
((Select (Sum(GRAU_1) + Sum(GRAU_2) + Sum(GRAU_3) From Tabela Where ID in
(1,2,3,4,5,6,7)) * 2) + (Select (Sum(GRAU_1) + Sum(GRAU_2) + Sum(GRAU_3)
From Tabela Where ID = 8) * 6)) / 8
Order By 1;
Um abraço,
Valdir
2009/10/16 Eduardo Belo <beloelogica em gmail.com>
> Prezados,
>
> Preciso criar uma consulta com a seguinte formatação:
>
> ID | AVALIADOR | DT_INICIO | DT_FIM | GRAU_1 |GRAU_2 | GRAU_3 |
> TOTAL | AVALIACAO_FINAL
>
> ===============================================================================
> 01 | FUNCIONARIO | 01/01/2009 | 31/03/2009 | 40 | 35 |
> 20 | 95 |
>
> ===============================================================================
> 02 | CHEFE | 01/01/2009 | 31/03/2009 | 35 | 20
> | 15 | 70 | 242,5
>
> ===============================================================================
> 03 | FUNCIONARIO | 01/04/2009 | 30/06/2009 | 25 | 35 |
> 30 | 90 |
>
> ===============================================================================
> 04 | CHEFE | 01/04/2009 | 30/06/2009 | 20 | 40
> | 35 | 95 | 251,25
>
> ===============================================================================
> 05 | FUNCIONARIO | 01/07/2009 | 30/09/2009 | 20 | 35 |
> 50 | 105 |
>
> ===============================================================================
> 06 | CHEFE | 01/07/2009 | 30/09/2009 | 25 | 30
> | 45 | 100 | 285
>
> ===============================================================================
> 07 | FUNCIONARIO | 01/10/2009 | 31/12/2009 | 30 | 20 |
> 50 | 100 |
>
> ===============================================================================
> 08 | CHEFE | 01/10/2009 | 31/12/2009 | 25 | 25
> | 45 | 95 | 271,25
>
> ===============================================================================
>
> Onde o campo TOTAL é a soma dos campos: GRAU_1 + GRAU_2 + GRAU_3 e
> AVALIACAO_FINAL obedece a seguinte fórmula:
>
> FÓRMULA AVALIAÇÃO FINAL: (FUNCIONÁRIO x 2) + (CHEFE x 6) / 8
>
> O agrupamento é por Trimestre que pode ser identificado extraindo o mês das
> datas.
>
> Alguém pode me dar um exemplo de como criar essa consulta criando uma view
> ou uma
> store procedure?
>
> Obrigado a todos que ajudarem.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista