Jump to content


Photo

Trabalhar Com View De Uma Tabela.


  • Faça o login para participar
4 replies to this topic

#1 jcaramulo

jcaramulo

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

Posted 09/04/2007, 14:39

Ois tenho 1 problema preciso de criar um procedimento que faça o seguinte.

Obtenção de lista dos elevadores em que o valor do custo de manutenção tenha chegado a 35% ou mais do custo do elevador original.

sendo tenho uma view em que tenho os dados: id_elevador, custo de manutenção , custo original do elevador .

:wacko:

#2 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 09/04/2007, 21:00

Ok...

Mais os id_elevadores pode repetir??

Por exemplo pode ter id_elevador = 1 por exemplo mais de uma vez??

E o calculo que você quer é de todo?? ou apenas de um certo periodo??

Dê mais detalhes sobre seu problema e como estão os dados da tabela...

#3 jcaramulo

jcaramulo

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

Posted 10/04/2007, 19:51

-- Obtenção de lista dos elevadores em que o valor do custo de manutenção tenha chegado a 35% ou mais do custo do elevador original.
#######################################################################
create view custo_manu as
select a.id_elevador,b.id_manutencao,c.custo_manutencao,a.preco
from elevador a,manutencao_elevador b,manutencao c
where a.status='a' and a.id_elevador=b.id_elevador and b.id_manutencao=c.id_manutencao;

drop function maior_manutencao;
create or replace function maior_manutencao
return
as
begin
select id_elevador from custo_manu where custo_manutencao >=0.35*( custo_manu.preco)
Group BY id_elevador ;
end;

a ideia é receber as varias linhas de o id_elevador que cuprem a condição da função mas a fç nao esta funcionando


obrigado dês de já

#4 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 11/04/2007, 11:41

Tenta isso:

CREATE FUNCTION maior_manutencao ( OUT elevador INT)
BEGIN SELECT id_elevador INTO elevador ,SUM(custo_manutencao) AS soma_manutencao FROM custo_manu WHERE soma_manutencao >=0.35*( custo_manu.preco)
	GROUP BY id_elevador ;
end;

Edição feita por: kleryson, 11/04/2007, 11:49.


#5 jcaramulo

jcaramulo

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

Posted 13/04/2007, 14:23

não funcionou exactamente assim mas ajudou a dar a volta a questão obrigado:)




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq