Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Group by (Error en select)

Estas en el tema de Group by (Error en select) en el foro de Bases de Datos General en Foros del Web. Hola amigos, tengo un pequeño problem con una select y es que tengo un gorup by y me da un error, la select es esta: ...

  #1 (permalink)  
Antiguo 16/12/2004, 06:24
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
Group by (Error en select)

Hola amigos, tengo un pequeño problem con una select y es que tengo un gorup by y me da un error, la select es esta:

strSQL = "SELECT * FROM atletas_ins where fecha " & discriminar_fecha & "Group by Nombre Order by Nombre desc"


Y el error este:


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

[Microsoft][Controlador ODBC Microsoft Access] No se puede agrupar mediante los campos seleccionados con '*'.

/liga/admin/puntuar.asp, line 52


Como puedo solucionarlo?

Un saludo
  #2 (permalink)  
Antiguo 16/12/2004, 06:29
 
Fecha de Ingreso: octubre-2004
Mensajes: 104
Antigüedad: 20 años, 1 mes
Puntos: 0
Cuando en una SELECT utilizas el GROUP BY, únicamente puedes imprimir los campos por los que agrupas, literales, y funciones de grupo. Por eso no te coge el *.

Esto si seria valido:

"SELECT Nombre FROM atletas_ins WHERE fecha " & discriminar_fecha & " GROUP BY Nombre ORDER BY Nombre DESC"
  #3 (permalink)  
Antiguo 16/12/2004, 06:36
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años
Puntos: 0
como dice posdon
vas a ener que agregar todos los campos que necesites en la sentencia, siempre se agrupa por algun campo especifico que debe estar despues del select.

SELECT Nombre, campo2, campo3, campoN FROM atletas_ins WHERE fecha " & discriminar_fecha & " GROUP BY Nombre ORDER BY Nombre DESC"
  #4 (permalink)  
Antiguo 16/12/2004, 07:00
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
Pués lo he hecho así y 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 'id' como parte de una función de agregado.

/liga/admin/puntuar.asp, line 52
  #5 (permalink)  
Antiguo 16/12/2004, 07:03
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años
Puntos: 0
pone el codigo completo
para verlo
  #6 (permalink)  
Antiguo 16/12/2004, 07:12
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
<%
Set rsdb = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT * FROM atletas_ins where fecha " & discriminar_fecha & "Order by Nombre desc"

rsdb.Open strSQL, Conn

Do While Not rsdb.EOF

Response.Write ("<img border=0 src=""../../imagenes/bullet.gif"">")
response.write ("<a href=""javascript:popUp('editar.asp?id=")
response.write (rsdb("ID"))
response.write ("')"" class=""vinculo2"">")
response.write (rsdb("nombre"))
response.write ("</a>")
response.write ("<br>")
response.write ("</a>")
response.write ("<br>")



rsdb.MoveNext

loop
%>
  #7 (permalink)  
Antiguo 16/12/2004, 07:15
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
Aqui lo tengo sinb el Order by por que me da error, como podría ponerlo sin que me d¡ese el error?
  #8 (permalink)  
Antiguo 16/12/2004, 07:16
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años
Puntos: 0
decime
los campos de la base como se llaman?
  #9 (permalink)  
Antiguo 16/12/2004, 07:35
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
ID y NOMBRE simplemente esos
  #10 (permalink)  
Antiguo 16/12/2004, 07:39
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años
Puntos: 0
proba con:

strSQL = "SELECT ID, NOMBRE FROM atletas_ins where fecha " & discriminar_fecha & "group by nombre Order by Nombre desc"

decime y fecha que es? si me decis que solo hay ID y Nombre
  #11 (permalink)  
Antiguo 16/12/2004, 07:49
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
pués es verdad me olvidaba de Fecha pero la incluyo en la selct y no funciona

strSQL = "SELECT ID, Nombre, Fecha FROM atletas_ins where fecha " & discriminar_fecha & "Group By Nombre Order by Nombre desc"
  #12 (permalink)  
Antiguo 16/12/2004, 07:51
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años
Puntos: 0
te falta el = en la fecha
  #13 (permalink)  
Antiguo 16/12/2004, 07:58
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
No creo que sea eso por que si quito el GROUP BY NOMBRE igualmente funciona con = o sin el...
De todas formas ya lo probé
  #14 (permalink)  
Antiguo 16/12/2004, 08:05
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 3 meses
Puntos: 16
lo que yo no cacho es por que hacen estas preguntas en este foro.
  #15 (permalink)  
Antiguo 16/12/2004, 08:06
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años
Puntos: 0
ojo si el formato de la fecha en la BD es fecha tenes
que usar los #
  #16 (permalink)  
Antiguo 16/12/2004, 08:09
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años
Puntos: 0
Cita:
Iniciado por Muzztein
lo que yo no cacho es por que hacen estas preguntas en este foro.
porque hay casos en que no podes separar ASP de SQL

sobre todo porque hay alguien que necesita una mano
  #17 (permalink)  
Antiguo 16/12/2004, 08:22
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
He quitado el where y me da el mismo error, no creo que sea ese el problema...
  #18 (permalink)  
Antiguo 16/12/2004, 08:25
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años
Puntos: 0
proba asi:
strSQL = "SELECT ID, Nombre, Fecha FROM atletas_ins Group By Nombre "

y escribime que error te da
  #19 (permalink)  
Antiguo 16/12/2004, 08:40
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
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 'ID' como parte de una función de agregado.

/liga/admin/puntuar.asp, line 52
  #20 (permalink)  
Antiguo 16/12/2004, 08:58
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 10 meses
Puntos: 146
Cita:
[Microsoft][Controlador ODBC Microsoft Access] Ha intentado ejecutar una consulta que no incluye la expresión especificada 'ID' como parte de una función de agregado.
No se puede más claro.

strSQL = "SELECT ID, Nombre, Fecha FROM atletas_ins Group By ID, Nombre, Fecha "
  #21 (permalink)  
Antiguo 16/12/2004, 08:59
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años
Puntos: 0
proba esta a ver que da

strSQL = "SELECT Nombre, Fecha FROM atletas_ins Group By Nombre "
  #22 (permalink)  
Antiguo 16/12/2004, 09:04
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
Pués yo claro no veo nada
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 'Fecha' como parte de una función de agregado.

/liga/admin/puntuar.asp, line 53
  #23 (permalink)  
Antiguo 16/12/2004, 09:06
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años
Puntos: 0
si necesitas ID proba

strSQL = "SELECT "[ID]", Nombre, Fecha FROM atletas_ins Group By Nombre "
  #24 (permalink)  
Antiguo 16/12/2004, 09:07
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 10 meses
Puntos: 146
No hay que estar adivinando, a menos que se use el sql de fox, el cual es el menos estandar de todos, la cosa es así:

Cita:
GROUP BY Clause
Specifies the groups into which output rows are to be placed and, if aggregate functions are included in the SELECT clause <select list>, calculates a summary value for each group. When GROUP BY is specified, either each column in any non-aggregate expression in the select list should be included in the GROUP BY list, or the GROUP BY expression must match exactly the select list expression.
  #25 (permalink)  
Antiguo 16/12/2004, 09:18
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
Y esto donde va... ;)
  #26 (permalink)  
Antiguo 16/12/2004, 09:20
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
Error de compilación de Microsoft VBScript error '800a0401'

Se esperaba un final de instrucción

/liga/admin/puntuar.asp, line 51

strSQL = "SELECT "[ID]", Nombre, Fecha FROM atletas_ins Group By Nombre "
------------------^
  #27 (permalink)  
Antiguo 16/12/2004, 09:22
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 10 meses
Puntos: 146
Arriba ya te había puesto como sebía de ser la consulta......

Cita:
[Microsoft][Controlador ODBC Microsoft Access] Ha intentado ejecutar una consulta que no incluye la expresión especificada 'ID' como parte de una función de agregado.
No se puede más claro.

strSQL = "SELECT ID, Nombre, Fecha FROM atletas_ins Group By ID, Nombre, Fecha "

Cita:
the GROUP BY expression must match exactly the select list expression.

Última edición por Myakire; 16/12/2004 a las 09:23
  #28 (permalink)  
Antiguo 16/12/2004, 09:43
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
Y donde las pongo?
  #29 (permalink)  
Antiguo 16/12/2004, 09:47
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
Lo que me interesa es que el group by no me repita los nombres, si incluyes en el group by la id ,como es diferente en cada caso, me muestra todos los valores como si el group by no existiese, me explico?
  #30 (permalink)  
Antiguo 16/12/2004, 09:50
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 3 meses
Puntos: 0
Lo que quiero hacer no es un agrehgado es mostrar valores, simplemente y que no me muestre los repetidoscon un mimso valor en común, el nombre.
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 23:19.