Alguem é bom em consultas no mysql?

preciso listar quantos de meus produtos em estoque estão abaixo de 3 unidades. fiz isso

SELECT count(*) 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 HAVING sum( t.quantia ) - sum( s.quantia ) <= '3'

preciso apenas do valor total. e com o exemplo de cima ele aparec quantas vzs os produtos são movimentados.

alguem pode me ajudaR?

ninguem? é tão impossivel isso que eu qro? :?

Impossível não é, porém olhando só este trecho da sua consulta não dá para adivinhar muita coisa, deve ser algum erro de sintaxe, segue uma explicação/exemplo sobre COUNT:

Diferentemente das outras funções de grupos, o COUNT retorna o número de linhas que atende a uma determinada condição. Podemos utilizá-lo com um asterisco entre parênteses, para indicar que queremos saber a quantidade total de linhas, independentemente de haver linhas com colunas nulas ou não.
Caso queiramos saber quantas linhas existem e quais destas não têm valor nulo em determinada coluna, especificamos essa coluna entre parênteses.

[b]No exemplo a seguir aparece o total de registros na tabela Gravadora:[/b]

SELECT COUNT(*) FROM GRAVADORA;

COUNT (*)

4

Já neste exemplo o total de registros que possuem endereço:

SELECT COUNT(ENDERECO) FROM GRAVADORA;

COUNT (ENDERECO)

2

[b]Efeito semelhante poderíamos obter com o comando:[/b]

SELECT COUNT(*) FROM GRAVADORA
WHERE ENDERECO IS NOT NULL;

COUNT (*)

2

Outra forma interessante de utilizar o COUNT é acrescentando a ele uma cláusula DISTINCT. Veja o exemplo a seguir: Têm-se um total de 140 registros na tabela MUSICA_AUTOR. Se quisermos saber quantas são as músicas distintas, ou seja, sem repetições, visto que pode haver mais de um autor para uma mesma música, podemos utilizar o comando:

SELECT COUNT(*)
FROM MUSICA_AUTOR;

COUNT(*)

140

SELECT COUNT ( DISTINCT CODIGO_MUSICA )
FROM MUSICA_AUTOR;

COUNT ( DISTINCT CODIGO_MUSICA )

86

:thumbup:

tche boa a esplicação sobre count, mas nao consegui ainda fazer eu apenas preciso saber quantos produtos no estoque estão com a quantia inferior ou igual a 4 e nao todas as vzs que cada elemento foi sitado.

Olá, Boa Noite.
Experimente:

    SELECT count(*)
    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  
    HAVING sum( t.quantia - s.quantia ) <= 3

Possíveis erros de sintaxe também, ali em WHERE idestoque = estoque_idestoque, você não informou a tabela do idestoque e do estoque_idestoque,
e também AND idmovimentacao = t.movimentacao_idmovimentacao.

Você pode fazer a subtração no SUM() mesmo, já que ele vai ‘juntar’ tudo que entrou e saiu subtraindo-os.

Tente com INNER JOIN ao invés da cláusula WHERE.

Como nosso colega InicianteJavaHenrique disse, só nesse trexo de código fica um pouco dificil entender a situação.
De qualquer forma, estamos aí, espero ajudar.
Vlw, até+.

o galera muito obrigado pela ajuda, vo tenta esplicar melhor
tenho em meu bd a tabela estoque que quarda o nome do produto tenho tambem a tabela movimentação que guarda dia que houve a movimentacao e o id do estoque e tenho as tabelas saida e entrada que guardão a quantia. foi a unica maneira que consegui desenvolver para meu estoque.

ai então preciso listar em minha jtable quais produtos estão carentes no estoque com o valor de estoque igual ou inferior a .

mas ate então nao to conseguindo apenas listar a quantia de linhas para inpor em minha jtable os itens consigo com a consulta

SELECT idestoque, cor, tamanho, S_I ,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 HAVING sum(t.quantia) - sum(s.quantia) <= '3'

essa consulda mostra perfeita mente os objetos desejados
mas nao consigo fazer listar as linhas necessarias para popular essas informações.
se alguem puder me ajudar.
grato.

sem o DER fica impossivel saber o que vc quer…

cara o estoque não são essas tabelas:

Estoque - Produto - Movimentacao :

Estoque(id_produto,Quantidade)

Produto(id_produto,descricao_produto)

Movimentacao(id_produto,quantidade,data,tipo(entrada x saida) )

você não deveria diminuir a quantidade no estoque quando realizar alguma movimentacao de saida ?

e depois você faria apenas a query em cima da tabela Estoque x Produto, sem usar movimentação ? para fazer o que esta querendo …?

[quote=douglaskd]sem o DER fica impossivel saber o que vc quer…

cara o estoque não são essas tabelas:

Estoque - Produto - Movimentacao :

Estoque(id_produto,Quantidade)

Produto(id_produto,descricao_produto)

Movimentacao(id_produto,quantidade,data,tipo(entrada x saida) )

você não deveria diminuir a quantidade no estoque quando realizar alguma movimentacao de saida ?

e depois você faria apenas a query em cima da tabela Estoque x Produto, sem usar movimentação ? para fazer o que esta querendo …?[/quote]

erra bem assim que iria faze inicialmente mas nao consiguia listar a quantia presente no estoque.

um select basico:

select id_produto from Estoque where Quantidade > 0

ai você relaciona com produto…

pq é estranho eu ter o produto no estoque e ai subtrair a quantidade que esta na movimentação…