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

Um problema interessante...


JP1

Pergunta

Sou novo no fórum...

Mas estou com um probleminha interessante...

Tenho 5 tabelas:

IMAGEM com DER e MER link

Preciso de uma consulta que me fala quanto gastei de um material especifico em uma determinada data...

OBS: Eu posso ter gasto material no diarioobra quando no ordemservico.

Pensei em alguma coisa parecida com isso aqui:

select m.material, sum(md.quantReal) + sum(mos.quantReal) from material m, diarioobra dio, material_diarioobra md, ordemservico os, material_os mos

where (m.idmaterial = md.idmaterial and md.iddiarioobra = dio.iddiarioobra)

or

(m.idmaterial = mos.idmaterial and mos.idos=os.idordemservico)

group by m.idmaterial;

Mas primeiramente ignorei a data especifica pois era só acrescentar depois, e em segundo não ia dar certo pois em qualquer ocasião que fosse achado o valor na tabela seria somado nos dois sum. Então to no escuro.

Editado por JP1
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Sou novo no fórum...

Mas estou com um probleminha interessante...

Tenho 5 tabelas:

IMAGEM com DER e MER link

Preciso de uma consulta que me fala quanto gastei de um material especifico em uma determinada data...

OBS: Eu posso ter gasto material no diarioobra quando no ordemservico.

Pensei em alguma coisa parecida com isso aqui:

select m.material, sum(md.quantReal) + sum(mos.quantReal) from material m, diarioobra dio, material_diarioobra md, ordemservico os, material_os mos

where (m.idmaterial = md.idmaterial and md.iddiarioobra = dio.iddiarioobra)

or

(m.idmaterial = mos.idmaterial and mos.idos=os.idordemservico)

group by m.idmaterial;

Mas primeiramente ignorei a data especifica pois era só acrescentar depois, e em segundo não ia dar certo pois em qualquer ocasião que fosse achado o valor na tabela seria somado nos dois sum. Então to no escuro.

Achei um jeito de fazer...

se alguém achar um jeito melhor....

(

select m.material, t1.soma + t2.soma from

(select m.idmaterial id, m.material nome, sum(md.quantReal) soma from material m, diarioobra dio, material_diarioobra md

where m.idmaterial = md.idmaterial and md.iddiarioobra = dio.iddiarioobra

group by m.idmaterial) as t1,

(select m.idmaterial id, m.material nome, sum(mos.quantReal) soma from material m, ordemservico os, material_os mos

where m.idmaterial = mos.idmaterial and mos.idos=os.idordemservico

group by m.idmaterial) as t2,

material m

where m.idmaterial = t1.id and m.idmaterial = t2.id

)

union

(

select m.material nome, sum(md.quantReal) soma from material m, diarioobra dio, material_diarioobra md

where m.idmaterial = md.idmaterial and md.iddiarioobra = dio.iddiarioobra and m.idmaterial not in (

select m.idmaterial from

(select m.idmaterial id, m.material nome, sum(md.quantReal) soma from material m, diarioobra dio, material_diarioobra md

where m.idmaterial = md.idmaterial and md.iddiarioobra = dio.iddiarioobra

group by m.idmaterial) as t1,

(select m.idmaterial id, m.material nome, sum(mos.quantReal) soma from material m, ordemservico os, material_os mos

where m.idmaterial = mos.idmaterial and mos.idos=os.idordemservico

group by m.idmaterial) as t2,

material m

where m.idmaterial = t1.id and m.idmaterial = t2.id)

group by m.idmaterial

)

union

(

select m.material nome, sum(mos.quantReal) soma from material m, ordemservico os, material_os mos

where m.idmaterial = mos.idmaterial and mos.idos=os.idordemservico and m.idmaterial not in (

select m.idmaterial from

(select m.idmaterial id, m.material nome, sum(md.quantReal) soma from material m, diarioobra dio, material_diarioobra md

where m.idmaterial = md.idmaterial and md.iddiarioobra = dio.iddiarioobra

group by m.idmaterial) as t1,

(select m.idmaterial id, m.material nome, sum(mos.quantReal) soma from material m, ordemservico os, material_os mos

where m.idmaterial = mos.idmaterial and mos.idos=os.idordemservico

group by m.idmaterial) as t2,

material m

where m.idmaterial = t1.id and m.idmaterial = t2.id)

group by m.idmaterial

);

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,1k
    • Posts
      651,9k
×
×
  • Criar Novo...