Ir para conteúdo
Fórum Script Brasil
  • 0

Agrupar e somar


Tonylimeira

Pergunta

Esta consulta retorna uma estrutura de um produto exemplo

produto (cód.01)- Misturador 1 pç ( tabela Kestrutura )

material (cód.02 )- chapa 1kg ( tabela Kcomponente)

material (cód.03) - cantoneira 2kg ( tabela Kcomponente)

produto (cód.04) - Corpo do Misturador 1pç ( Tabela Kestrutrura)

material (cód.02 )- chapa 3kg ( tabela Kcomponente)

material (cód. 03 )- cantoneira 4kg ( tabela Kcomponente)

Quando eu coloco o produto 4 dentro do produto 1 fica assim:

produto (cód.01)- Misturador 1pç ( tabela Kestrutura )

material (cód.02) - chapa 3kg ( tabela Kcomponente)

material (cód.03) - cantoneira 6kg ( tabela Kcomponente)

material (cód.04) - Corpo do Misturador 1pç ( Tabela Kcomponente)

Como poderia fazer para retorna só material usado nos dois produtos e somado exemplo

produto (cód.01)- Misturador 1 pç ( tabela Kestrutura )

material (cód.02 )- chapa 3kg ( tabela Kcomponente)

material (cód.03) - cantoneira 6kg ( tabela Kcomponente)

03 - corpo do misturador é uma estrutura também e foi colocada dentro da estrutura 01 - misturador e´composta assim:

03 - corpo do misturador ( tabela kestrutura )

02 - chapa ( tabela Kcomponente)

04 - parafuso ( tabela Kcomponente)

preciso que a consulta retorne os itens que estão dentro do 03 corpo do misturador exemplo

01- Misturador

02 - chapa

03 - corpo do misturador

02 - chapa

04 - parafuso

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde Tony,

Poderá utilizar o SUM agrupado por material. Neste caso o sql irá somar os materiais iguais e te dar o resultado.

Não entendi no seu exemplo, como o material (cód.02 ) é uma "chapa 1kg" e ele está especificado com o mesmo código sendo "chapa 3kg"...

Na segunda consulta, poderá dar um disticnt no material.

OBS.: se a tabela kestrutura for recursiva, tomar cuidado com o função SUM quando referenciar a mesma tabela duas vezes no select. Terá provavelmente somas erradas.

Link para o comentário
Compartilhar em outros sites

  • 0

Esta consulta retorna uma estrutura de um produto exemplo

produto (cód.01)- Misturador 1 pç ( tabela Kestrutura )

material (cód.02 )- chapa 1kg ( tabela Kcomponente)

material (cód.03) - cantoneira 2kg ( tabela Kcomponente)

produto (cód.04) - Corpo do Misturador 1pç ( Tabela Kestrutrura)

material (cód.02 )- chapa 3kg ( tabela Kcomponente)

material (cód. 03 )- cantoneira 4kg ( tabela Kcomponente)

exemplo 01

Quando eu coloco o produto 4 dentro do produto 1 fica assim:

produto (cód.01)- Misturador 1pç ( tabela Kestrutura )

material (cód.02) - chapa 3kg ( tabela Kcomponente)

material (cód.03) - cantoneira 6kg ( tabela Kcomponente)

material (cód.04) - Corpo do Misturador 1pç ( Tabela Kcomponente)

exemplo 02

Como poderia fazer para retorna só material usado nos dois produtos e somado exemplo

produto (cód.01)- Misturador 1 pç ( tabela Kestrutura )

material (cód.02 )- chapa 3kg ( tabela Kcomponente)

material (cód.03) - cantoneira 6kg ( tabela Kcomponente)

tanto no produto (cód.01) misturador e o produto (cód.04) corpo do misturador tem o mesmo material porém no lançamento é colocado um dentro do outro como se fosse CPU e MONITOR FORMA UM COMPUTADOR AMBOS TEM ALGUNS MATERIAL SEMELHANTE. Eu utilizo esta sentença para retornar o exemplo 01 preciso ajusta para retorna o exemplo 2

select

tprd.codigoprd,

tprd.nomefantasia,

convert (varchar (20),kcomponente.qtdusada/10000),

k.codestrutura,

tprd.codigoauxiliar

from

kestrutura,

tprd,

kcomponente

left outer join kestrutura k on

kcomponente.codcoligada = k.codcoligada

and kcomponente.idproduto = k.idproduto

where

kcomponente.codcoligada = kestrutura.codcoligada

and kcomponente.codestrutura = kestrutura.codestrutura

and kcomponente.codcoligada = tprd.codcoligada

and kcomponente.idproduto = tprd.idprd

and kcomponente.codestrutura = :p_codestrutura_s

group by

tprd.codigoprd,

tprd.nomefantasia,

kcomponente.qtdusada,

k.codestrutura,

Link para o comentário
Compartilhar em outros sites

  • 0

Pegue o select que retorna o exemplo1 e faça o seguinte: No select coloque um SUM na coluna que possui as informações da quantidade de material.

Esta coluna tem q estar no Group by também.... se ela já tiver, apenas coloque o SUM.

Link para o comentário
Compartilhar em outros sites

  • 0
select tprd.codigoprd, tprd.nomefantasia, convert (varchar (20),kcomponente.qtdusada/10000),
k.codestrutura, tprd.codigoauxiliar, SUM(##coloque aqui a coluna da Quantidade##)
from kestrutura, tprd, kcomponente left outer join kestrutura k on 
kcomponente.codcoligada = k.codcoligada and kcomponente.idproduto = k.idproduto
where kcomponente.codcoligada = kestrutura.codcoligada and kcomponente.codestrutura = kestrutura.codestrutura
and kcomponente.codcoligada = tprd.codcoligada and kcomponente.idproduto = tprd.idprd
and kcomponente.codestrutura = :p_codestrutura_s
group by tprd.codigoprd, tprd.nomefantasia, kcomponente.qtdusada, 
k.codestrutura, ##se não tiver coloque aqui a coluna da Quantidade##

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...