Problema de consulta [RESOLVIDO]

5 respostas
quaresma

bom dia

idmovimentacao estoque_idestoque date quantia E_S 1 1 2012-04-12 345345 0 2 2 2012-04-12 34534 0 3 1 2012-04-12 2545 1 4 2 2012-04-12 564 1

essa é minha consulta

preciso fazer assim

quero o ver quanto tenho no estoque por id.
0 é entrada
1 é saida

ja tentei de tudo dois selects tudo :smiley:

se alguem conseguir me da uma ajuda

5 Respostas

quaresma

o mais perto que cheguei foi

select  (
(select sum(QUANTIA) from movimentacao where E_S = 0 GROUP BY `estoque_idestoque`)
 - 
(select sum(QUANTIA) from movimentacao where E_S = 1 GROUP BY `estoque_idestoque`)
)
Rayfran.Rocha

tenta

passo 1: chamarei este select de ‘SELECT1’

select estoque_idestoque as Produto, sum(QUANTIA) as Entrada, 0 as Saida from movimentacao where E_S = 0 GROUP BY 'estoque_idestoque'
union
select estoque_idestoque as Produto, 0 as Entrada, sum(QUANTIA) as Saida from movimentacao where E_S = 0 GROUP BY 'estoque_idestoque'

o resutado, pode parecer o mesmo que vc mostrou na tabela, mas haverá diferença no caso de existir mais tuplas relacionas ao mesmo Produto (id_estoque)

Produto, Entrada, Saida
1, 345345, 0
1, 0, 2545
2, 34534,0
2,0,564

passo 2: criar um select em cima deste resultado

select Produto, sum(Entrada)-sum(Saida) as Saldo from ( 'SELECT1' )

ficando assim:

select Produto, sum(Entrada)-sum(Saida) as Saldo from ( select estoque_idestoque as Produto, sum(QUANTIA) as Entrada, 0 as Saida from movimentacao where E_S = 0 GROUP BY 'estoque_idestoque' union select estoque_idestoque as Produto, 0 as Entrada, sum(QUANTIA) as Saida from movimentacao where E_S = 0 GROUP BY 'estoque_idestoque' ) group by Produto

espero ter ajudado.
abcs

C

Amigo bom dia,

select E_S,date,sum(quantia) from nome_da_tabela group by E_S,date

Essa query resolve seu problema, não entendi direito o q vc queria fazer com o campo E_S por isso agrupei por ele também. Não sabia tambem o nome da tabela, vc substitui ai.

Sem mais,
Cássio

quaresma

assim amigos, o campo E_S é responsavel para cuidar se é entrada ou saida.

teria que existir um select [b]sub/b from movimentação group by estoque_idestoque

sub subtrarir

iria ficar muito mais facil

preciso apenas selecionar a quantidade de tudo que for do mesmo estoque_idestoque cujo e_s = 0 (produto x que entraram) - estoque_idestoque cujo e_s = 1 (produto x que sairam) dae deveria aparecer :smiley:

quaresma

lamentavel o mysql nao ter um comando simples desses

mas consegui fazer

SELECT idestoque,sum(t.quantia) - sum(s.quantia)
FROM estoque e, movimentacao m, entrada t, saida s
WHERE idestoque = estoque_idestoque
and idmovimentacao = t.movimentacao_idmovimentacao
and idmovimentacao = s.movimentacao_idmovimentacao
GROUP BY idestoque

Criado 14 de abril de 2012
Ultima resposta 14 de abr. de 2012
Respostas 5
Participantes 3