Comando Select para cargar dataset

12/07/2006 - 13:06 por enorso | Informe spam
La sentencia siguiente funciona perfectamente si el campo fecinitrab es solo
fecha. Es decir la agrupación por día es correcta

SQLSTR1 = "SELECT rechum.fecinitrab, SUM(rechum.cant) as cant FROM rechum
WHERE rechum.fecinitrab BETWEEN #" + Fecha1 + "# AND #" + Fecha2 + "# " & _
"GROUP BY otrechum.fecinitrab ORDER BY otrechum.fecinitrab"

Necesito que fecinitrab sea fecha y hora. Si ejecuto la sentencia anterior,
no funciona bien ya que la parte hora hace que el campo fecinitrab no sea
igual aunque sea el mismo día.

Si cargo el dataset con el select siguiente me da un error que dice:
Ha intentado ejecutar una consulta que no incluye la expresión especificada
'fecinitrab' como parte de una función de agregado.

SQLSTR1 = "SELECT rechum.fecinitrab, SUM(rechum.cant) as cant FROM rechum
WHERE rechum.fecinitrab BETWEEN #" + Fecha1 + "# AND #" + Fecha2 + "# " & _
"GROUP BY DAY(otrechum.fecinitrab) ORDER BY otrechum.fecinitrab"

¿Que puede estar mal?

Gracias
 

Leer las respuestas

#1 Eduardo Alvarado Meza
13/07/2006 - 07:38 | Informe spam
Me parece que es cuestion de percepcion pero tu pregunta es valida, la
ultima sentencia sql no es correcta pero tu solucion esta mas cercana a la
primera. Primero te aconsejo que utilizes parametros en lugar de concatenar
cadenas, eso te garantizara que todo funcione bien. Segundo, quita el
between y usa un where de la siguiente manera:

-Si deseara saber los x registros del mes de julio entonces mi
Fecha1 seria el 1ro de Julio 2006 a las 00:00:00
Fecha2 seria el 1ro de Agosto 2006 a las 00:00:00

de esta forma tu Where luciria asi:
WHERE (rechum.fecinitrab >= @FECHA1) AND (rechum.fecinitrab < @FECHA2)

Asi de esta manera buscara cualquier registro entre 20060701 00:00:00 y las
20060731 23:59:59
que es basicamente lo que te entendi que deseabas

"enorso" escribió en el mensaje
news:
La sentencia siguiente funciona perfectamente si el campo fecinitrab es
solo
fecha. Es decir la agrupación por día es correcta

SQLSTR1 = "SELECT rechum.fecinitrab, SUM(rechum.cant) as cant FROM rechum
WHERE rechum.fecinitrab BETWEEN #" + Fecha1 + "# AND #" + Fecha2 + "# " &
_
"GROUP BY otrechum.fecinitrab ORDER BY otrechum.fecinitrab"

Necesito que fecinitrab sea fecha y hora. Si ejecuto la sentencia
anterior,
no funciona bien ya que la parte hora hace que el campo fecinitrab no sea
igual aunque sea el mismo día.

Si cargo el dataset con el select siguiente me da un error que dice:
Ha intentado ejecutar una consulta que no incluye la expresión
especificada
'fecinitrab' como parte de una función de agregado.

SQLSTR1 = "SELECT rechum.fecinitrab, SUM(rechum.cant) as cant FROM rechum
WHERE rechum.fecinitrab BETWEEN #" + Fecha1 + "# AND #" + Fecha2 + "# " &
_
"GROUP BY DAY(otrechum.fecinitrab) ORDER BY otrechum.fecinitrab"

¿Que puede estar mal?

Gracias

Preguntas similares