Foros del Web » Programando para Internet » ASP Clásico »

error en Select sum()

Estas en el tema de error en Select sum() en el foro de ASP Clásico en Foros del Web. HOLA.... Tengo el sgte codigo <% SQLtxt = "Select SUM(dias) AS di, tipo FROM permiso where rut = '" & Request("rut_aux") & "' and permiso.tipo= ...
  #1 (permalink)  
Antiguo 19/02/2007, 13:58
 
Fecha de Ingreso: enero-2007
Mensajes: 158
Antigüedad: 18 años, 3 meses
Puntos: 0
Exclamación error en Select sum()

HOLA.... Tengo el sgte codigo
<% SQLtxt = "Select SUM(dias) AS di, tipo FROM permiso where rut = '" & Request("rut_aux") & "' and permiso.tipo= 'VACACIONES'"
Set Consulta = oConn.Execute(SQLtxt)%>

ME ENVIA EL SGTE ERROR:

Microsoft JET Database Engine (0x80040E21)
Ha intentado ejecutar una consulta que no incluye la expresión especificada 'tipo' como parte de una función de agregado.

*** SI SACO DEL SELECT EL CAMPO tipo ME SUMA BIEN, EL PROBLEMA ES QUE ES NECESARIO PARA ESPECIFICAR QUE DIS QUIERO SUMAR A TRAVES DEL TIPO

  #2 (permalink)  
Antiguo 20/02/2007, 11:04
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: error en Select sum()

Prueba con esto:
<% SQLtxt = "Select SUM(dias) AS di, tipo FROM permiso where rut = '" & Request("rut_aux") & "' and permiso.tipo= 'VACACIONES' GROUP BY tipo"
Set Consulta = oConn.Execute(SQLtxt)%>
  #3 (permalink)  
Antiguo 21/02/2007, 06:41
 
Fecha de Ingreso: enero-2007
Mensajes: 158
Antigüedad: 18 años, 3 meses
Puntos: 0
Pregunta Re: error en Select sum()

Me funciona super bien me muestra los rut con su respectiva suma de dias de vacaciones... pero necesito que me entregue conjunto con ello el nombre y apellido de la persona, estoy tratando de la forma:

Código:
<% SQLtxt = "Select permiso.rut , trabajador.nombre, trabajador.apellido, SUM(dias) AS di FROM permiso, trabajador where trabajador.rut = permiso.rut and permiso.tipo= 'VACACIONES' GROUP BY permiso.rut " 
Set Consulta = oConn.Execute(SQLtxt)   %>
pero me sale el mismo error:

Microsoft JET Database Engine (0x80040E21)
Ha intentado ejecutar una consulta que no incluye la expresión especificada 'nombre' como parte de una función de agregado.


  #4 (permalink)  
Antiguo 21/02/2007, 07:01
 
Fecha de Ingreso: enero-2007
Mensajes: 158
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: error en Select sum()

ya encontre el error habia que agregar algo mas en el group by en:

Código:
GROUP BY permiso.rut, trabajador.nombre
  #5 (permalink)  
Antiguo 21/02/2007, 09:37
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: error en Select sum()

incluye tambièn en el GROUP BY la columna "trabajador.apellido" que tienes en el SELECT

"Select permiso.rut ,
trabajador.nombre,
trabajador.apellido,
SUM(dias) AS di
FROM permiso,
trabajador
WHERE trabajador.rut = permiso.rut
AND permiso.tipo= 'VACACIONES'
GROUP BY permiso.rut
trabajador.nombre,
trabajador.apellido,
  #6 (permalink)  
Antiguo 21/02/2007, 09:38
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: error en Select sum()

sin la coma al final... ese fue un error en la copia que hice del còdigo.
  #7 (permalink)  
Antiguo 22/02/2007, 09:31
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 20 años, 7 meses
Puntos: 2
Re: error en Select sum()

Agregando a las sugerencias:
Cuando se hace una consulta con funciones en Sql (Cualquiera) solo se pueden devolver los resultados de funciones.
Si necesitas incluir campos que no se calculen con Sum, Avg, Max, Min... hay que incluírlos en el Group By.
Todos y cada uno de los campos que se necesiten mostrar y no estén incluídos en ninguna función.
Lo pongo, sabiendo que es redundante, por si a alguien mas le sirve la sugerencia.

Saludos!
__________________
Why can't we not be sober?
www.partitorium.com.ar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:20.