Ir para conteúdo
Pedro Batista Lopes

Criar um campo soma

Recommended Posts

Estou com o problemas com uma query em mysql, fiz duas uma cliente outra usuário juntei as duas, 

Mais eu queria fazer mais um campo que contasse a quantidade de notas que tem para cada cliente.

vou enviar a query.

select DISTINCT 
cli.nome, nf.numero_nf,
nf.data_em,
nf.valor 
from cliente cli
join nota_fiscal nf
on cli.id = nf.id_cliente
WHERE nf.data_em >= "2019-01-01" and nf.data_em <= "2019-01-30"

Gostaria que não repetisse os usuários e contasse quantas vezes eles aparecem . 

segue anexo imagem como sai assim

 

Capturar.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue exemplo:

 

DADOS UTILIZADOS:

CREATE TABLE cliente (
	id INT NOT NULL AUTO_INCREMENT,
	nome VARCHAR(50) NOT NULL,
	PRIMARY KEY(id)
);
INSERT INTO cliente (nome) VALUES
('Pedro'),
('Paulo'),
('Fernando'),
('Silva'),
('Luiz'),
('Jaque');

CREATE TABLE nota_fiscal (
	id INT NOT NULL AUTO_INCREMENT,
	id_cliente INT NOT NULL,
	numero_nf INT(3) NOT NULL,
	data_em DATE NOT NULL,
	valor DECIMAL(6,2) NOT NULL,
	PRIMARY KEY(id)
);
INSERT INTO nota_fiscal (id_cliente, numero_nf, data_em, valor) VALUES
(1, 200, '2019-01-03', '200'),
(2, 201, '2019-01-05', '300'),
(3, 203, '2019-01-06', '700'),
(4, 203, '2019-01-07', '700'),
(1, 203, '2019-01-09', '900'),
(4, 203, '2019-01-12', '700'),
(5, 203, '2019-01-15', '500'),
(3, 203, '2019-01-17', '700'),
(5, 203, '2019-01-19', '900'),
(3, 203, '2019-01-20', '500'),
(6, 203, '2019-01-22', '500'),
(4, 203, '2019-01-28', '523');


SQL
 

SELECT DISTINCT 
	cli.nome,
	nf.numero_nf,
	nf.data_em,
	COUNT(nf.id_cliente) 'apareceuXvezes',
	SUM(nf.valor) 'valorSomado'
FROM
	cliente cli
JOIN
	nota_fiscal nf
ON
	cli.id = nf.id_cliente
WHERE
	nf.data_em >= "2019-01-01" AND
	nf.data_em <= "2019-01-30"
GROUP BY
	nf.id_cliente


RESULTADO
 
image.png.5a3ed6eac77a7e8a70fcdf5303209673.png

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por rogerblower
      Pessoal tenho os campos, data_inicio, hora_inicio e hora_final
      Nos dados que estão na tela preciso que a  permaneça por mais 5 minutos hora_final + 05
       
      WHERE data_inicio = CURDATE() AND hora_final + 05 ORDER BY hora_inicio ASC");
       
      Não estou conseguindo o resultado desejado alguém pode ajudar?
       
    • Por nascimnbeni80@gmail.com
      Caros amigos preciso somar campos de varias tabelas (15 no total), nos quais eu quero somar somente os campos iguais nas data específicas abaixo segue um exemplo.
      OBS: precisa ser sempre o ultimo registro de cada tabela, então considere usar LIMIT 1 e ORDER BY id DESC
       

    • Por lucianfpaula
      Galera tenha a seguinte duvida, tenho 3 tabelas onde estou trazendo os dados e preciso fazer um count em uma delas
       
      SELECT *  FROM tabela1 AS t1  INNER JOIN tabela2 AS t2 ON t1.idt1 = t2.idt2 INNER JOIN tabela3 AS t3 ON t3.idt3 = t1.idt1  
      a duvida é: quero manter o SELECT * mas também preciso de COUNT(t3.idT3)
      não sei se é possível fazer isso, mas gostaria de ter certeza antes de focar em outra solução
      desde já muito grato.
    • Por lezão
      Boa noite!
      Td bem com vcs?
      Estou usando esse código mas não retorna nada!
       
      Alguém pode me ajudar ?
       
       
      <?php $sql = mysqli_query($link, "SELECT ver_post, COUNT(ver_post) AS Quantidade FROM tab_comentarios where ver_post = 'red' Group by ver_post"); ?> Variável
      <?php echo $Quantidade; ?>  
    • Por neto_celino
      Estou usando o seguinte código para somar um SELECT, mas cheguei em um determinado ponto que travei.
       
      Tenho 400 registros na DB e tenho que somar alguns registros somente. Ou seja, somar o (valortotal) de alguns ID's somente. 
      É possivel e por onde vou ? rs.
      <?php $subtotal = "SELECT SUM(valortotal) from tbl_compras WHERE id = VariosIdAqui"; $resultado = mysql_query($subtotal); $registro = mysql_fetch_row($resultado); echo number_format($registro[0], 2, ',', ' ') ;  ?>      
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.