Select com count condicionado
Boa tarde.
Executando a seguinte select:
Select caixas,
(Select count (*) from retornos where retornos.codigo = entradas.codigo) from Entradas
where entradas.numero = ''257''
Preciso adaptar para mostrar somente os registros em que a coluna "caixas" seja diferente da coluna count. É possível isso com select?
Agradeço.
Executando a seguinte select:
Select caixas,
(Select count (*) from retornos where retornos.codigo = entradas.codigo) from Entradas
where entradas.numero = ''257''
Preciso adaptar para mostrar somente os registros em que a coluna "caixas" seja diferente da coluna count. É possível isso com select?
Agradeço.
Alexandre
Curtidas 0
Respostas
Frank Hosaka
03/02/2023
Para mim, retorno e entrada é a mesma coisa.
Na minha cabeça, eu teria uma tabela entrada assim: id,data, nf, valor, CFOP. Se não me falha a memória, o CFOP de retorno é 132.
Para contar todos os retornos, a consulta seria assim "select count(id) as retorno from entrada where CFOP=132 or CFOP=232 or CFOP=332";
Na minha cabeça, eu teria uma tabela entrada assim: id,data, nf, valor, CFOP. Se não me falha a memória, o CFOP de retorno é 132.
Para contar todos os retornos, a consulta seria assim "select count(id) as retorno from entrada where CFOP=132 or CFOP=232 or CFOP=332";
GOSTEI 0
Frank Hosaka
03/02/2023
Para mim, retorno e entrada é a mesma coisa.
Na minha cabeça, eu teria uma tabela entrada assim: id,data, nf, valor, CFOP. Se não me falha a memória, o CFOP de retorno é 132.
Para contar todos os retornos, a consulta seria assim "select count(id) as retorno from entrada where CFOP=132 or CFOP=232 or CFOP=332";
Por outro lado, você fala em caixas na consulta.
Nesse caso, precisamos de mais duas tabelas, a de produtos e a historia_dos_produtos.
vamos criar o id=1 na nf de entrada com CFOP 132, com valor de R$ 10,00.
vamos criar o id=1 na tabela de produtos com o nome de repolho, com o custo de R$ 5,00.
vamos criar o id=1 na tabela historia_dos_produtos, onde temos identrada=1, idproduto=1, quantidade=10, total=[não permitido utilizar] quando CFOP=132.
O MySQL permite ajuntar todas as tabelas, mas procurar por caixas de repolho quando ele foi planejado para usar unidades, aí a coisa complica.
Na minha cabeça, eu teria uma tabela entrada assim: id,data, nf, valor, CFOP. Se não me falha a memória, o CFOP de retorno é 132.
Para contar todos os retornos, a consulta seria assim "select count(id) as retorno from entrada where CFOP=132 or CFOP=232 or CFOP=332";
Por outro lado, você fala em caixas na consulta.
Nesse caso, precisamos de mais duas tabelas, a de produtos e a historia_dos_produtos.
vamos criar o id=1 na nf de entrada com CFOP 132, com valor de R$ 10,00.
vamos criar o id=1 na tabela de produtos com o nome de repolho, com o custo de R$ 5,00.
vamos criar o id=1 na tabela historia_dos_produtos, onde temos identrada=1, idproduto=1, quantidade=10, total=[não permitido utilizar] quando CFOP=132.
O MySQL permite ajuntar todas as tabelas, mas procurar por caixas de repolho quando ele foi planejado para usar unidades, aí a coisa complica.
GOSTEI 0
Emerson Nascimento
03/02/2023
adapte:
select e.caixas, coalesce(count(r.codigo),0) retorno from entradas e left join retornos r on r.codigo = e.codigo where e.numero = '257' group by e.caixas having e.caixas <> coalesce(count(r.codigo),0)
GOSTEI 0
Arthur Heinrich
03/02/2023
select e.caixas, r.qtde from ( select codigo, count(1) qtde from retornos group by codigo ) r join entradas e on e.codigo = r.codigo where e.numero = '257' and e.caixas <> r.qtde
GOSTEI 0
Alexandre
03/02/2023
Obrigado a todos que responderam. Deu certo a dica do Emerson.
GOSTEI 0