MySQL - SUMAR VALORES DE UNA CONSULTA SI CUMPLEN CON UNA FECHA

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 105 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

SUMAR VALORES DE UNA CONSULTA SI CUMPLEN CON UNA FECHA

Publicado por Brian (1 intervención) el 09/01/2020 02:41:45
Hola Buenas tardes,

Tengo una pequeño problema al momento de realizar una consulta

tengo la siguiente tabla llamada factura

1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `factura` (
  `nofactura` bigint(11) NOT NULL,
  `fecha` datetime NOT NULL DEFAULT current_timestamp(),
  `usuario` int(11) DEFAULT NULL,
  `codcliente` int(11) DEFAULT NULL,
  `totalfactura` decimal(65,2) DEFAULT NULL,
  `estatus` int(11) DEFAULT 1,
  `iva_venta` decimal(65,2) NOT NULL,
  `vendedor` int(11) DEFAULT NULL,
  `tiempo_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


la consulta que estoy realizando se encuentra en un paginador y es la siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
$sql_registe = mysqli_query($conection,"SELECT COUNT(*) as total_registro FROM usuario WHERE estatus = 1 ");
$result_register = mysqli_fetch_array($sql_registe);
$total_registro = $result_register['total_registro'];
 
$por_pagina = 20;
 
if(empty($_GET['pagina']))
{
    $pagina = 1;
}else{
    $pagina = $_GET['pagina'];
}
 
$desde = ($pagina-1) * $por_pagina;
$total_paginas = ceil($total_registro / $por_pagina);
 
$query = mysqli_query($conection,"SELECT f.vendedor, u.nombre as vendedor,
                                        SUM(CASE WHEN MONTH(f.fecha) = 1 THEN 1 ELSE 0 END) AS Ene,
                                        SUM(totalfactura) as TotalVenta,
                                        SUM(CASE WHEN MONTH(f.fecha) = 2 THEN 1 ELSE 0 END)  AS Feb,
                                        SUM(CASE WHEN MONTH(f.fecha) = 3 THEN 1 ELSE 0 END) AS Mar,
                                        SUM(CASE WHEN MONTH(f.fecha) = 4 THEN 1 ELSE 0 END) AS Abr,
                                        SUM(CASE WHEN MONTH(f.fecha) = 5 THEN 1 ELSE 0 END) AS May,
                                        SUM(CASE WHEN MONTH(f.fecha) = 6 THEN 1 ELSE 0 END) AS Jun,
                                        SUM(CASE WHEN MONTH(f.fecha) = 7 THEN 1 ELSE 0 END) AS Jul,
                                        SUM(CASE WHEN MONTH(f.fecha) = 8 THEN 1 ELSE 0 END) AS Ago,
                                        SUM(CASE WHEN MONTH(f.fecha) = 9 THEN 1 ELSE 0 END) AS Sep,
                                        SUM(CASE WHEN MONTH(f.fecha) = 10 THEN 1 ELSE 0 END) AS Oct,
                                        SUM(CASE WHEN MONTH(f.fecha) = 11 THEN 1 ELSE 0 END) AS Nov,
                                        SUM(CASE WHEN MONTH(f.fecha) = 12 THEN 1 ELSE 0 END) AS Dic
                                        FROM factura f
                                        INNER JOIN usuario u
                                        ON f.vendedor = u.idusuario
                                        WHERE f.fecha BETWEEN '2019-01-01' AND '2019-12-31'
                                        GROUP BY f.vendedor desc LIMIT $desde,$por_pagina
                                            ");
 
 
 
$result = mysqli_num_rows($query);
if($result > 0){
 
    while ($row = mysqli_fetch_array($query)) {
        $total = array(
            'Enero' => $row['Ene'],
            'Enerot' => $row['TotalVenta'],
            'Febrero' => $row['Feb'],
            'Marzo' => $row['Mar'],
            'Abril' => $row['Abr'],
            'Mayo' => $row['May'],
            'Junio' => $row['Jun'],
            'Julio' => $row['Jul'],
            'Agosto' => $row['Ago'],
            'Septiembre' => $row['Sep'],
            'Octubre' => $row['Oct'],
            'Noviembre' => $row['Nov'],
            'Diciembre' => $row['Dic']
        );
 
 
        $totalventa = $row['TotalVenta'];
 
        $totalventacopu = number_format($totalventa, 2, ",", ".");
 
        $totalganancia = $row['TotalVenta'];
 
        $ganancia	= round($totalganancia * (16 / 100), 2);
        $gananciacopu = number_format($ganancia, 2, ",", ".");
 
 
        ?>
        <tr>
            <td><?php echo $row["vendedor"]; ?></td>
            <td><?php echo $row["Ene"]; ?></td>
            <td><?php echo $totalventacopu; ?></td>
            <td><?php echo $gananciacopu; ?></td>
            <td><?php echo $row["Feb"]; ?></td>
            <td><?php echo $row["Mar"]; ?></td>
            <td><?php echo $row["Abr"]; ?></td>
            <td><?php echo $row["May"]; ?></td>
            <td><?php echo $row["Jun"]; ?></td>
            <td><?php echo $row["Jul"]; ?></td>
            <td><?php echo $row["Ago"]; ?></td>
            <td><?php echo $row["Sep"]; ?></td>
            <td><?php echo $row["Oct"]; ?></td>
            <td><?php echo $row["Nov"]; ?></td>
            <td><?php echo $row["Dic"]; ?></td>
 
        </tr>
    <?php
    }
 
}
 
?>


en ella estoy consultado las ventas realizadas por vendedores funciona perfectamente me indica cuantas ventas por mes lleva

pero quiero agregar a esa misma consulta que me indique el monto vendido y un porcentaje de comisión en este caso el 16%

lo que quiero lograr es que SUM(totalfactura) as TotalVenta, tambien busque por fecha y me lo muestre el monto vendido ese mes

horita me lo esta busando pero no por rango de fecha sino en todo el año imagino que es por el BETWEEN '2019-01-01' AND '2019-12-31' que tengo abajo

de antemano muchas gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder