como posso Somar um valor de registros registros concidentes

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Ter, 09 Mai 2006 10:39 am

Caros amigos estou com uma dívida e não consigo resolvela, peço ajuda para os srs.

Tenho uma tabela PAI, que contem COD_PROD, SEQ_PROD, VALOR_PROD. (O COD, pode repetir a SEQ não pode)
Tenho outra tabela filha que contém os credores destes produtos: COD_PROD, SEQ_PROD, CREDOR_PRODUT. (Eu posso ter N credores para cada produto, os credores podem ser uguais para cada produto ou diferentes.)
Minha dificuldade é:
Tenho que mostrar num relatório os valores de cada produto com as sequintes condições:
caso os protudos não tenham credores e tenham o mesmo cód, soma-se o valor deles
Caso os produtos tenham exatamente os mesmos credores e o mesmo código, somam-se tbém
E casa isso não ocora, mostre o valor distinto de cada produto.

Por favor me ajudem :roll:
vindalencio
Localização: Curitiba

Vanderlei Indalencio

Mensagemem Ter, 09 Mai 2006 11:56 pm

Cara use a técnica "Dividir para conquistar"!
Por exemplo, resolve este primeiro:
caso os protudos não tenham credores e tenham o mesmo cód, soma-se o valor deles

SELECT P.COD_PROD, sum(P.VALOR_PROD) FROM PRODUTOS P
WHERE NOT EXISTS(SELECT 1 FROM PRODUTO_CREDORES C
WHERE C.COD_PROD= P.COD_PROD AND C.SEQ_PROD = P.SEQ_PROD)
GROUP BY P.COD_PROD

Depois este:
Caso os produtos tenham exatamente os mesmos credores e o mesmo código, somam-se tambémém

E finalmente:

E casa isso não ocora, mostre o valor distinto de cada produto.


Resolvendo estas partes você poderá usar os recursos que um gerenciado de banco de dados possui: views, procedures e functions, para juntar as peças.

Gilberto
gilbertoca
Localização: Palmas - TO


Mensagemem Qui, 11 Mai 2006 10:01 am

Obrigado, Gilberto....

Vou testar...

:-o
vindalencio
Localização: Curitiba

Vanderlei Indalencio



Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Google [Bot] e 2 visitantes