Caro Leandro:

Dedique meia hora de seu tempo para ler o manual, economize seu dinheiro, e,
o mais importante, aprenda a fazer por você mesmo.


2009/6/15 Leandro Barbosa Silva <[email protected]>

> Saudações a todos.
>
> Preciso realizar um trabalho(Curso Técnico) de PostgreSQL, mas não
> possuo domínio suficiente para o tal. Sou profissional de
> infra-estrura bruta (telecom e redes). O trabalho é dividido em duas
> partes, das quais a primeira (criar o banco, tabelas, roles, esquemas
> e usuários), com a devida pesquisa consegui fazer sem grandes
> dificuldades. Porém, a segunda parte envolve a criação de Functions, e
> por mais que eu tenha pesquisado e lido manuais, não consegui
> concluí-la.
>
> Bom, é fato que devo entregar esse trabalho, por isso venho até vocês
> na esperança de que alguém tenha a diposnibilidade de concluir essa
> parte de meu trabalho. Claro que sei que tal tarefa exige tempo, e
> consequentemente irá me gerar um custo. Podemos perfeitamente acertar
> um valor.
>
> São apenas 4 questões, que para quem está habituado com o PostgreSQL,
> creio que não será tão difícil quanto é para mim.


É possível fazer funções SQL para atender estas questões.
Dê uma lida em:
http://pgdocptbr.sourceforge.net/pg80/xfunc-sql.html
que você verá como realmente é facil.



>
>
> As questões são as seguintes:
>
>
> "Considere as seguintes tabelas:
>
> funcionarios (id, nome, data_nascimento, salario, nro_departamento,
> id_superior_imediato)
>
> dptos(id, nome, id_gerente)
>
> projeto(id, nome, duracao, id_dpto)
>
> atividdes(id_projeto, id_funcionario, descricao, horas_trabalhdas)
>
>
>
> Responda as seguintes questões:
>
> 1)      Crie uma função que receba como parâmetro o numero de um
> departamento e retorne o total de horas trabalhadas pelo gerente.


Faça uma junção da tabela dptos com funcionarios e atividades.
Agrupe por id_gerente e some as horas trabalhadas.
Para o departamento em questão ($1).



>
>
> 2)      Crie uma função que some as horas trabalhadas de cada projeto
> e apresente a duração das mesmas em dias.


Faça uma junção de projeto com atividades, agrupe por projeto , some as
horas e divida por 24.



>
>
> 3)      Crie uma função que receba como parâmetro o numero de um
> departamento e exclua todos os registros de participação em projetos
> controlados pelo mesmo.


Apenas um comando DELETE com a cláusula USING.
http://pgdocptbr.sourceforge.net/pg82/sql-delete.html




>
>
> 4)      Crie uma função que receba como parâmetro s dois valores de
> porcentagem e aumente com o primeiro valor  o salário dos funcionários
> nascidos antes de 1972 e com o segundo valor o salário dos
> funcionários nascidos em 1972 ou depois.


Use a cláusula CASE para aplicar o percentual adequado.



>
> Espero que minha situação seja compreendida. Não quero "folgar", mas
> também não posso sair prejudicado por não ter entregue o trabalho. E
> sei que o mesmo me  servirá como uma boa base de estudo.
>
>

 Como você pode ver não é nada complicado. Dei o ponta-pé inicial agora vá
lá e faça o gol.
Se você tiver alguma dificuldade mas demonstrar que tentou fazer pode
colocar sua dúvida aqui que o pessoal responderá com a maior boa vontade.

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a