Ver Mensaje Individual
  #25 (permalink)  
Antiguo 11/03/2011, 08:09
dilinwe
 
Fecha de Ingreso: enero-2011
Mensajes: 35
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: query para una suma

Cita:
Iniciado por gnzsoloyo Ver Mensaje
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.
Vale compadre, se nota que te manejas bastante en estos temas, espero algun dia ser asi de bueno... Saludos y espero que ahora funcione.