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
Responder
vindalencio
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 140
Registrado em: Qui, 16 Fev 2006 9:42 am
Localização: Curitiba
Vanderlei Indalencio

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:
gilbertoca
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 372
Registrado em: Ter, 24 Jan 2006 3:33 pm
Localização: Palmas - TO
Contato:

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

Selecionar tudo

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
vindalencio
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 140
Registrado em: Qui, 16 Fev 2006 9:42 am
Localização: Curitiba
Vanderlei Indalencio

Obrigado, Gilberto....

Vou testar...

:-o
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 17 visitantes