SoloCodigo

Bases de Datos => Crystal Reports => Mensaje iniciado por: aleplgr en Jueves 1 de Febrero de 2007, 10:16

Título: Duda Sobre Consulta Sql Simple
Publicado por: aleplgr en Jueves 1 de Febrero de 2007, 10:16
Hola, estoy generando consultas SQL con el asistente de Base de Datos utilizando la opcion Agregar Comando (del mismo modo que se agregan tablas se pueden agregar consultas SQL) que luego son tratadas por CR como una tabla mas.
Tengo esta consulta que funciona bien, solo elige el minimo valor del campo CLAU de una tabla:

 
SELECT MIN(ESCALESCAP.CLAU), ESCALESCAP.C_HISTORIA
 FROM
  ESCALESCAP ESCALESCAP
 WHERE ( ESCALESCAP.CLAU>2615 And
   ESCALESCAP.CLAU <2635)
GROUP BY ESCALESCAP.C_HISTORIA


PERO cuando intento agregar un nuevo campo al SELECT, un campo de la misma tabla, me da error, alguien sabe por que es esto? supongo que será algo del GROUP BY ya que si elimino el GROUP BY me deja agregar cualquier campo al SELECT
Título: Re: Duda Sobre Consulta Sql Simple
Publicado por: aicrag en Sábado 3 de Febrero de 2007, 18:30
Hola!!

En realidad el problema no es exactamente con el GROUP BY, sino que estás usando funciones de agregado y al vez estás extrayendo campos únicos en tu consulta.

Lo que pasa es que al usar funciones de agregado implicitamente estás agrupando los valores de ese campo y regresando un valor agrupado de todos los que ha en el campo, y al seleccionar campos únicos también en la consulta entonces se produce un error si no tenes esos campos dentro de una clausula GROUP BY.

En resumen todos los campos que seleccionés n tu consulta y que no estén contenidos en la función de agregado deberán ir dentro de la cláusula GROUP BY, así.

SELECT campo1, campo2, campoN , FUNC1(campo1)...
WHERE condicion
GROUP campo1, campo2, campoN


Espero te sirva.  B)
Título: Re: Duda Sobre Consulta Sql Simple
Publicado por: aleplgr en Lunes 5 de Febrero de 2007, 14:18
ahhh perfecto, gracias