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

consulta SQL- AS -GROUP BY -HAVING

Estas en el tema de consulta SQL- AS -GROUP BY -HAVING en el foro de ASP Clásico en Foros del Web. Estoy resultando esta consulta y resulta que el valor que obtengo de MaxiD esta condicionado a que nombre sea igual que el nombre de objRS("idmensaje")), ...
  #1 (permalink)  
Antiguo 27/01/2005, 04:28
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Pregunta consulta SQL- AS -GROUP BY -HAVING

Estoy resultando esta consulta y resulta que el valor que obtengo de MaxiD
esta condicionado a que nombre sea igual que el nombre de objRS("idmensaje")), ¿Que tendria que modificar para que me tome
la MaxID cuya Idcabeza="& objRS("idmensaje") independientemente del valor que tome nombre? (Pero rescatando su valor)

SQLMaxId = "SELECT Max(idmensaje) AS MaxID,Idcabeza,nombre FROM foro GROUP BY Idcabeza,nombre HAVING Idcabeza="& objRS("idmensaje")


Si pongo esto:
SQLMaxId = "SELECT Max(idmensaje) AS MaxID,Idcabeza,nombre FROM foro GROUP BY Idcabeza HAVING Idcabeza="& objRS("idmensaje")

Obtengo este error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[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.

Última edición por sqa212; 27/01/2005 a las 04:59
  #2 (permalink)  
Antiguo 27/01/2005, 08:57
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, como dice claramente el mensaje de error, debes colocar "nombre" en el "Group by"
  #3 (permalink)  
Antiguo 27/01/2005, 09:11
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Myakire, creo que no entendiste la pregunta
Estoy haciendo esta consulta y resulta que el valor que obtengo de MaxiD
esta condicionado a que nombre sea igual que el nombre de objRS("idmensaje")), ¿Que tendria que modificar para que me tome
la MaxID cuya Idcabeza="& objRS("idmensaje") independientemente del valor que tome nombre? (Pero rescatando su valor) .
Es decir Imagina que tengo
Idmensaje Nombre Id Cabeza
1 juan 0
2 pepe 1
3 juan 1
4 pepe 1

La consulta me trae el nombre que esta de color rojo, lo que yo quiero qy¡ue me traifga es el nombre que esta de color verde.
  #4 (permalink)  
Antiguo 27/01/2005, 10:08
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, para serte honesto, la mayoría de las veces cuando entro a un post, checo dos cosas: Si tiene muuuuuchas líneas, me salgo y no lo leo, y otra, se veo un error posteado, pongo la respuesta en base al error. Y lo que te puse solucionaba dicho error.

Para lo que tienes, se me ocurre que lo hagas con una subconsulta del tipo:

select nombre from tabla where id in (select max(id) from tabla ....etc, etc.)

Saludos
  #5 (permalink)  
Antiguo 27/01/2005, 10:44
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Sigo sin solucionar la consulta
Gracias Myakire, he puesto la consulta asi:
SQLMaxId = "select nombre from foro where idmensaje IN (SELECT Max(idmensaje) AS MaxID,Idcabeza FROM foro GROUP BY Idcabeza HAVING Idcabeza="& objRS("idmensaje") &")"

Me devuelve este error: Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Microsoft Access] Ha escrito una subconsulta que puede devolver más de un campo sin utilizar la palabra reservada EXISTS en la cláusula FROM de la consulta principal. Corrija la instrucción SELECT de la subconsulta para solicitar un único campo.

Última edición por sqa212; 31/01/2005 a las 01:57
  #6 (permalink)  
Antiguo 31/01/2005, 01:58
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Ninguna idea???
  #7 (permalink)  
Antiguo 31/01/2005, 08:37
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
a ver ........., cuando uno usa la cláusula IN, la subconsulta debe de regresar SOLO UN campo que coincida con la campo que haz colocado a la izquierda del IN, a menos claro, que uses la cláusula EXISTS. una vez más.....el mensaje del error es claro.

Saludos
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 00:01.