none
select ... soma de valores com mais de uma tabela... ?? RRS feed

  • Pergunta

  • daew...

     

    primeiro, não conseguir definir um titulo o tópico... O.o ... então ficou aquilo mesmo...

    bom, meu problema é o seguinte: preciso fazer a soma de diversos campos de duas tabelas relacionada a outra tabela... o problema é que como uso joins, o numero de registros se multiplicam quando ha registros com "chaves duplicadas" (chaves do join) em um tabela estragando toda a soma...

    ja sabia que não ia conseguir explicar exatamente o problema tambem.... mas fiz uma instrução sql que reprensenta oq eu preciso:

    select gprodac.cod, sum(ped2.a) as somaA, sum(gest100.b)as  somaB from (select 1 as cod) gprodac
    left join ((select 1 as cod, 1 as a) union (select 1 as cod, 3 as a)) ped2 on gprodac.cod = ped2.cod
    left join (select 1 as cod, 2 as b) gest100 on gprodac.cod = gest100.cod
    group by gprodac.cod

    resultado:

    cod         somaA       somaB      
    ----------- ----------- -----------
    1           4           4

     

    Resultado que eu espero:

    cod         somaA       somaB      
    ----------- ----------- -----------
    1           4           2

     

    O select acima apenas representa + - a situção das tabelas e como estou fazendo o select... na tabela GPRODAC o campo COD é chave, porem nas outras tabelas não é, e os seus registros podem se repetir, então se tiver 2 registros com mesmo COD na tabela PED2, isso multiplicara os registros que serão trazidos de GEST100, multiplicando tambem a soma...

     

     

    como posso resolver isto??

     

    quarta-feira, 18 de outubro de 2006 17:59

Todas as Respostas

  •  

     

     vc. pode criar um join das colunas ja agupadas e agrupar so a soma exemplo

     

      Select SomaA.TotalA, SomaB.TotalB From ( Select ...  inner ... ) )

    qualquer coisa retoren.

    Abs;

    quarta-feira, 18 de outubro de 2006 18:16