ASP - Problemas con COUNT(*)

 
Vista:

Problemas con COUNT(*)

Publicado por carlos (12 intervenciones) el 29/08/2001 14:50:53
Hola, mi problema es el siguiente:
Cuando pongo la siguiente consulta con un count:
..
Set RSTgasolina=CONgasolina.execute("select count(*) as contador,a.nombre,a.apellido1,a.apellido2,b.descripcion,b.km,b.fecha from empleado a,gasolina b where a.id_empleado = " & session("id_empleado") & " and b.id_empleado=a.id_empleado and b.liquidado=0")

IF RSTgasolina("contador") <> 0 then
....

me da el siguiente error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][Controlador ODBC Microsoft Access] Ha intentado ejecutar una consulta que no incluye la expresión especificada 'nombre' como parte de una función de agregado.

/web/gasolina/congas2.asp, line 18

GRACIAS POR LA AYUDA
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Problemas con COUNT(*)

Publicado por David Grimaldi (125 intervenciones) el 29/08/2001 16:44:24
Hola.

El problema es que para usar funciones de agrupado como count, sum, max... conjuntamente a campos no agregados debes poner una agrupación sobre todos los campos no agregados. Esto tiene el peligro de varias combinaciones iguales de campos de registro así que deberías agrupar también por la clave. Creo que la SELECT funcionaría así:

select count(*) as contador, a.id_empleado, a.nombre, a.apellido1, a.apellido2, b.descripcion, b.km, b.fecha from empleado a ,gasolina b where a.id_empleado = " & session("id_empleado") & " and b.id_empleado = a.id_empleado and b.liquidado=0 GROUP BY a.id_empleado, a.nombre, a.apellido1, a.apellido2, b.descripcion, b.km, b.fecha

Espero que esto te ayude.

Un saludo:
David Grimaldi.
Cádiz (España)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con COUNT(*)

Publicado por adan (47 intervenciones) el 29/08/2001 18:57:47
Hola, por alguna extraña razon o limitación de MS Access, no es posible juntar un count() con otros campos en una consulta SQL, sin embargo es posible realizar una select anidado, de la siguiente forma:

select a.nombre,a.apellido1,a.apellido2,b.descripcion,b.km,b.fecha, (select count(1) from empleado a1,gasolina b1 where a1.id_empleado = " & session("id_empleado") & " and b1.id_empleado=a1.id_empleado and b1.liquidado=0") as contador from empleado a,gasolina b where a.id_empleado = " & session("id_empleado") & " and b.id_empleado=a.id_empleado and b.liquidado=0")

Espero que esto te ayude, saludos
APQ
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar