Ver Mensaje Individual
  #27 (permalink)  
Antiguo 14/03/2011, 08:23
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

Normalmente el mensaje debería ser diferente. debería indicar "unknow column name" o algo así, y no "columna '' no válida".
Pero la cosa parece relativamente simple: Si la columna "período" está presente en todas las tablas que se piden, el error está en la tabla derivada "c", porque no se está pidiendo que también devuelva ese campo:
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, periodo, 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

Cuando generas una tabla derivada en el FROM por medio de una subconsulta, tienes que indicar en esa subconsulta que devuelva todos los campos que se van a usar luego, y el ON siguiente está pidiendo precisamente el campo "periodo" de la tabla "Ag_recepcion2011".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)