Fórum Select com sub Select em sp #58034

20/03/2007

0

Ola amigos, meu problema é o seguinte, tenho 3 tabelas assim:

**** Tabelas de exemplo
[b:c2c07c1147]Colaboradores [/b:c2c07c1147]
ID
Nome

[b:c2c07c1147]Projeotos[/b:c2c07c1147]
ID
ID_COLAB
HORAS_ESTIMADAS

[b:c2c07c1147]Carga_horaria[/b:c2c07c1147]
ID_projeto
data_hora_ini -> timestamp
data_hora_fim -> timestamp

gostaria de emitir um relatorio dessa forma
nome_colaborador total_projeto Total_hora_esti Total_hora_realizada

sabendo que um projeto pode ter n registros dentro da tabela carga_horaria;

tentei criar a seguinte sp mas o resultado fica errado no R_TOTAL_HORA_REA


CREATE PROCEDURE colab_hora_est (I_HORA_DEFAULT double precision)
returns(
R_COLAB_ID INTEGER,
R_COLAB_NOME VARCHAR(50),
r_total_proj INTEGER,
R_TOTAL_HORA_EST DOUBLE PRECISION,
R_TOTAL_DIAS_EST DOUBLE PRECISION,
R_TOTAL_HORA_REA DOUBLE PRECISION,
R_TOTAL_DIAS_REA DOUBLE PRECISION)
as
begin
FOR
SELECT
COLABORADORES.id,
COLABORADORES.nome
FROM
COLABORADORES
INTO
:r_colab_id,
:r_colab_nome
do
BEGIN
select
/* calculando horas estimadas */
count(proj.id),
sum((((((((cast(substring(proj.hora_estimada from 1 for 3) as double precision))*60)*3600) +
((cast(substring(proj.hora_estimada from 5 for 2) as double precision))*3600)))/3600)/60)
),
(select sum(projetos_carga_horaria.data_hora_fim - projetos_carga_horaria.data_hora_ini)
from projetos_carga_horaria
)
from
projetos proj
where
proj.id_colaborador = :r_colab_id

into
:r_total_proj,
:r_total_hora_est,
:r_total_hora_rea;

r_total_dias_est = :r_total_hora_est/:i_hora_default;

/* fim calculando horas estimadas */
suspend;
END
end


Uiliangurjon

Uiliangurjon

Responder

Posts

23/03/2007

Uiliangurjon

Alguem?????


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar