Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

  • 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.