Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con distinct

Estas en el tema de Problema con distinct en el foro de Mysql en Foros del Web. Hola señores del foro, tengo un problemita, lo que pasa es: Tengo una tabla la cual se llama ingreso, la cual tiene atributos codigo_ingreso (clave ...
  #1 (permalink)  
Antiguo 07/01/2009, 05:58
Avatar de cajojeca  
Fecha de Ingreso: junio-2008
Mensajes: 77
Antigüedad: 15 años, 9 meses
Puntos: 0
Problema con distinct

Hola señores del foro, tengo un problemita, lo que pasa es:

Tengo una tabla la cual se llama ingreso, la cual tiene atributos codigo_ingreso (clave primaria), codigo_turno_ingreso, codigo_vehiculo_ingreso (segun el tipo de vehiculo tiene un codigo), fecha_ingreso, hora_ingreso, valor_ingreso, y un item_ingreso (caractersiticas que se encuentran en un menu colgante), el problema es el siguiente, cada item tiene un valor_ingreso unico, y la idea es mostrar los items solamente una ves con la cantidad de vehiculos y su total en dinero, pero no se como ocupar muy bien el distinct:

$sql2 = ("select distinct item_ingreso, sum(valor_ingreso) as suma, count(item_ingreso) as cantidad from ingreso");

esa es la consulta, es mysql y php, donde la idea es que solamente se muestre una ves el item, suma los valores en dinero de cada item, y muestre la cantidad de los mismos items que ingresaron, ojala alguien me pueda ayudar, ya que ee buscado en la web y dice que el distinct se ocupa de esa manera....pero no me resulta.....gracias...
  #2 (permalink)  
Antiguo 07/01/2009, 06:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con distinct

DISTINCT no funciona en este contexto al estar presentes funciones SUM() y/o COUNT(). Esto es porque SUM() genera una acumulación en un campo y devuelve, por definición, un único registro.
Cuando lo que quieres son las sumas parciales de cada uno de los items distintos según el valor de otra columna, lo que debes hacer es que agrupe los valores conforme esa columna, es decir, esto:
Código sql:
Ver original
  1. SELECT
  2.    item_ingreso,
  3.    SUM(valor_ingreso) suma,
  4.   COUNT(*) cantidad
  5. FROM ingreso
  6. GROUP BY item_ingreso;
De esta forma, el DISTINCT está implícito para ese campo, y los valores de cada columna son las sumas de aquellos que corresponden a valores de item_ingreso iguales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/01/2009, 07:00
Avatar de cajojeca  
Fecha de Ingreso: junio-2008
Mensajes: 77
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con distinct

muchas gracias funciona de maravilla....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:06.