Ir ao conteúdo
  • Cadastre-se

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


Ir à solução Resolvido por herbertbahia,

Posts recomendados

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"

Link para o comentário
Compartilhar em outros sites

  • Solução

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
$

 

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!