Nueva pregunta

Pregunta:

Fecha: 28-02-2019 10:41:28 (En Español)

Problema con consulta a base de datos[Resuelta]


estoy creando un reporte de productos en el que busco listar todos los productos con las cantidades vendidas, el precio, el costo, etc Gracias a la ayuda de algunos amigos del grupo estoy dando algunos pasos pero estoy atascado. en mi MODELO

public function getVentasProductos()
{
    $this->db->select("dv.*,sum(dv.cantidad_detalle_ventas) as cantidad,p.id_producto,p.nombre_producto,p.proveedor_id_producto,p.stock_producto,pro.nombre_proveedores as proveedor,p.pCosto_producto");
    $this->db->from("detalle_ventas dv");
    $this->db->join("productos p","p.id_producto = dv.producto_id_detalle_ventas");
    $this->db->join("proveedores pro","pro.id_proveedores = p.proveedor_id_producto");
    //$this->db->join("dv", "dv.producto_id_detalle_ventas = p.id_producto");
    //$this->db->join("tipo_comprobante tc","v.tipo_comprobante_id_ventas = tc.id_tComprobante");
    $resultados = $this->db->get();
    if ($resultados->num_rows()>0) 
    {
        return $resultados->result_object();
    }
    else
    {
        return false;
    }
}


utilizo el sum(dv.cantidad_detalle_ventas) as cantidad pero me suma toda la columna (en la misma estan las cantidades de las ventas de todos los productos) yo necesito q me sume solo las que tienen el mismo id_producto que estoy trabajando. Ademas este modelo me esta enviando solo un resultado osea solo un producto, no entiendo porque no esta recorriendo toda la tabla.

adjunto tb el codigo de mi controlador

public function __construct()
{
    parent::__construct();
    $this->load->model("Ventas_models");
}
public function index()
{   $fechaInicio = $this->input->post("fechainicio");
    $fechaFin = $this->input->post("fechafin");
    if ($this->input->post("buscar")) //pregunta si se presiono el boton buscar
    {
        $productos = $this->Ventas_models->getVentasProductosByDate($fechaInicio, $fechaFin);
    }
    else
    {
        $productos = $this->Ventas_models->getVentasProductos();
    }
    $data = array
    (
        'productos' => $productos, // se carga en el array la variable ventas q se obtuvo en el if de arriba 
        //'total' => $total
    );
    //var_dump($data);
    $this->load->view("layouts/header");
    $this->load->view("layouts/aside");
    $this->load->view("admin/reportes/Rep_Productos", $data);
    $this->load->view("layouts/footer");
}


Muchas Gracias x adelantado!!
Etiquetas: Javascript - MySQL - PHP - Pregunta Votos: 0 - Respuestas: 2 - Vistas: 7 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 01-03-2019 06:08:12 Hola Elvio,
    La función SUM siempre trabaja sobre valores agregados (agrupados). En tu caso no especificas qué campo utilizarás para agrupar en la consulta.

    Agrega un GROUP BY p.id_producto y eso te va a solucionar el problema.

    Saludos!
      Votos: 1 - Link respuesta
     
  • Fecha: 01-03-2019 16:13:06 Gracias x la respuesta amigo!! Me soluciono!!   Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com