Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/04/2010, 21:06
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: consulta duplica valores

En el contexto de esas consultas, el DISTINCT está creando una duplicación de registros, ya que afecta a ambos campos al mismo tiempo. Por otro lado, se vuelve innecesario cuando lo que pides es agrupar por el mismo campo que defines en el DISTINCT, esto es, el resultado es el mismo que buscas:
Código MySQL:
Ver original
  1.   YC.especie_variedad especie_c,
  2.   SUM(YC.cantidad) cantidad_c
  3. FROM yema_comercializada YC
  4.   INNER JOIN yema Y ON YC.especie_variedad=Y.especie_ variedad
  5. GROUP BY especie_c;

Código MySQL:
Ver original
  1.   YC.especie_variedad especie_c,
  2.   SUM(YC.cantidad) cantidad_c
  3. FROM yema_comercializada YC
  4.     INNER JOIN yema Y ON YC.especie_variedad = Y.especie_ variedad
  5. GROUP BY especie_c;

Tips:
- AS es una cláusula obsoleta desde hace años. Se conserva por compatibilidad de versiones anteriores, pero no se requiere.
- Usa alias con los nombres de tablas, especialmente cuando son largos. Ayuda a la legibilidad del código y el uso de los nombres tan largos tiende a generar errores de tipeo.
- Trata de escribir las sentencias en forma estructurada (saltos de línea con tabulaciones para los subgrupos). Facilita el análisis de la sintaxis.
- En MySQL, GROUP BY acepta el agrupamiento por el alias de los campos. Además, MySQL tambien admite agrupar por campos ocultos y por menos campos de los no afectados por las funciones de agregación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)