Ver Mensaje Individual
  #24 (permalink)  
Antiguo 11/03/2011, 07:47
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: query para una suma

Tal vez por aquí:
Código MySQL:
Ver original
  1.     a.Zona,
  2.     a.numero,
  3.     a.nombre,
  4.     a.variedad,
  5.     a.tmestimadas tmrecepcionadas,
  6.     b.potrero,
  7.     b.hassembradas superficie,
  8.     b.v1_rendimiento rdtoesperado,
  9.     (b.v1_rendimiento * b.hassembradas) tmestimadas,
  10.     c.nrocontrato,
  11.     c.rut
  12.     ag_Contrato a
  13.     INNER JOIN Ag_Potrero b ON a.periodo = b.periodo
  14.     INNER JOIN Ag_Visitaterreno v ON a.numero = v.nrocontrato AND a.periodo = v.periodo
  15.     INNER JOIN
  16.         (SELECT nrocontrato, rut, Sum(cantidad) Total
  17.         FROM Ag_recepcion2011
  18.         GROUP BY nrocontrato, rut) c ON a.periodo = c.periodo AND a.nroprecontrato = b.numero
  19.      a.periodo = $temporada
  20. ORDER BY a.numero
No uso la coma sino INNER JOIN porque el WHERE es una mala forma de relacionar tablas, no es optimizable, mientas que el FROM si, pero para ello tienes que escribirlos con más cuidado.
Tampoco pongo los AS porque son obsoletos, están eliminados del estándar hace años, y sólo sirven si usas DBMS muy viejos (3.x o anterior).
El error más grave que veía es que intentabas obtener en un SELECT algo que devuelve más de un campo, y una subconsulta allí debe devolver una única columna, además de que estabas haciendolo sobre una tabla que ya estás invocando en el FROM. Eso no tiene mucho sentido.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 11/03/2011 a las 07:53