Ir ao conteúdo

PHP como fazer SUM (somar) valores filtrada em datas de inicio e fim com BETWEEN?


Ir à solução Resolvido por herbertbahia,

Posts recomendados

Postado

Como fazer um SUM para valores de uma data de inicio e fim usando BETWEEN? é necessário fazer com PHP PDO segue o codigo abaixo:

<?php
        $dados = filter_input_array(INPUT_POST, FILTER_DEFAULT);
        ?>

        <form action="" method="POST">
            <input class="filtrar-data-inicio-box" type="date" name="data_inicio" required="">

            <input class="filtrar-data-fim-box" type="date" name="data_fim" required="">

            <input class="filtrar-data-submit" type="submit" name="submit" value="Pesquisar">
        </form>

        <?php
        $query_vendas = "SELECT idvenda, nome,inf_adicional, fornecedor, quantidade_produtos, valor, tipo_pagamento, data_registro FROM vendas WHERE data_registro BETWEEN :data_inicio AND :data_fim";
        $result_vendas = $pdo->prepare($query_vendas);
        $result_vendas->bindParam(':data_inicio', $dados['data_inicio']);
        $result_vendas->bindParam(':data_fim', $dados['data_fim']);
        $result_vendas->execute();
        ?>

        <table>
            <tr>
                <th>ID</th>
                <th>Nome</th>
                <th>Inf.adicional</th>
                <th>Fornecedor</th>
                <th>Quantidade vendida</th>
                <th>Valor</th>
                <th>Tipo de pagamento</th>
                <th>Data da venda</th>
            </tr>
            <?php while($row_vendas = $result_vendas->fetch(PDO::FETCH_ASSOC)) { ?>
            <tr>
                <td><?php echo $row_vendas['idvenda']; ?></td>
                <td><?php echo $row_vendas['nome']; ?></td>
                <td><?php echo $row_vendas['inf_adicional']; ?></td>
                <td><?php echo $row_vendas['fornecedor']; ?></td>
                <td><?php echo $row_vendas['quantidade_produtos']; ?></td>
                <td><?php echo $row_vendas['valor']; ?></td>
                <td><?php echo $row_vendas['tipo_pagamento']; ?></td>
                <td><?php echo date("d/m/Y", strtotime($row_vendas['data_registro'])); ?></td>
            </tr>
            <?php }
        ?>
        </table>

Esse é o codigo para trazer informações de vendas de uma data de inicio e fim, o que eu preciso é de um SUM para trazer o número total de valores dessas datas, apenas os números total nas datas com a coluna "VALOR"

  • Solução
Postado

talvez este exemplo te ajude

 

<?php

// String de conexão com o banco de dados
$dsn = 'mysql:host=localhost;dbname=nome_banco';
$user = 'usuario';
$password = 'senha';

// Cria a instância da classe PDO
$pdo = new PDO($dsn, $user, $password);

// Escreve a consulta SELECT para realizar a soma dos valores filtrados pelo intervalo de datas
$query = "SELECT SUM(valor) FROM tabela WHERE data BETWEEN :data_inicio AND :data_fim";

// Prepara a consulta
$stmt = $pdo->prepare($query);

// Vincula os valores das variáveis à consulta
$stmt->bindValue(':data_inicio', '2022-01-01');
$stmt->bindValue(':data_fim', '2022-01-31');

// Executa a consulta
$stmt->execute();

// Armazena o resultado da consulta em uma variável
$

 

Postado
Em 29/12/2022 às 10:51, herbertbahia disse:

talvez este exemplo te ajude

 

<?php

// String de conexão com o banco de dados
$dsn = 'mysql:host=localhost;dbname=nome_banco';
$user = 'usuario';
$password = 'senha';

// Cria a instância da classe PDO
$pdo = new PDO($dsn, $user, $password);

// Escreve a consulta SELECT para realizar a soma dos valores filtrados pelo intervalo de datas
$query = "SELECT SUM(valor) FROM tabela WHERE data BETWEEN :data_inicio AND :data_fim";

// Prepara a consulta
$stmt = $pdo->prepare($query);

// Vincula os valores das variáveis à consulta
$stmt->bindValue(':data_inicio', '2022-01-01');
$stmt->bindValue(':data_fim', '2022-01-31');

// Executa a consulta
$stmt->execute();

// Armazena o resultado da consulta em uma variável
$

 

Consegui irmão mt obrigado, fiz algumas alterações. vou colocar aqui caso alguém precise no futuro:

$query_vendas_valor = "SELECT SUM(valor) as qnt_valor FROM vendas WHERE data_registro BETWEEN :data_inicio AND :data_fim";

        $result_vendas_valor = $pdo->prepare($query_vendas_valor);

        $result_vendas_valor->bindValue(':data_inicio', $dados['data_inicio']);

        $result_vendas_valor->bindValue(':data_fim', $dados['data_fim']);

        $result_vendas_valor->execute();

        $row_vendas_valor = $result_vendas_valor->fetch();

        echo $row_vendas_valor['qnt_valor'];

 

  • Curtir 1
  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...