Bases de Datos > SQL Server
Consulta A Una Tabla
Dieguinho.:
Buenas, estoy trabado con esta consulta y le escribo para ver si alguno me puede dar una mano.
Tengo una tabla que tiene 3 campos: IdSuc,FechaBack y Descripcion
Esta tabla no tiene claves primarias, por lo que los id pueden estar repetidos.
Ahora yo lo que tengo que hacer es una consulta que me traiga 1 registro por cada IdSuc que tenga distinto y que traiga el de fecha mas actual y ordenado por IdSuc
Ej.
--- Código: Text --- IdSuc FechaBack Descripcion2 1/1/1950 xxxx2 1/1/2007 yyyy1 1/1/2006 zzzz1 1/1/2000 aaaa
El resultado de esa consulta tendria que ser:
1,1/1/2006,zzzz
2,1/1/2007,yyyy
Espero que me puedan ayudar.
Saludos.
Intente algunas cosas con MAX y GROUP BY, pero no me sale bien.
ElNapster:
Prueba esto
--- Código: Text ---Select distinct IdSuc From tu_tabla
esto te devolvera solo un IdSuc de los existan , ahora vos solo tenes que hacer lo demas ..... :comp:
Dieguinho.:
Gracias, ya habia hecho algo similar.
Mira, usando esto da bien
--- Código: Text --- SELECT DISTINCT IdSuc, MAX (fechabackup) FROM backuppdv GROUP BY IdSuc ORDER BY IdSuc Ahora el problema es que me faltaria agregar a eso la descripcion.
Si agrego ese campo en el select nomas me dice que no esta contenida en una funcion de agregado o GROUP BY.
Y si la agrego con un GROUP BY me empieza a mostrar el campo IdSuc (que tenia distinct) repetido.
Asi funcion mal:
--- Código: Text --- SELECT DISTINCT idSuc, MAX (fechabackup),descripcion FROM backuppdv GROUP BY idSuc,observacion ORDER BY IdPSuc
Que puedo probar?
Dieguinho.:
En donde dice 'observacion', en realidad el el campo 'descripcion'.
Lo cambie por descripcion para que quede mejor en el ejemplo.
Mollense:
--- Cita de: "Dieguinho." --- Ahora el problema es que me faltaria agregar a eso la descripcion.
Si agrego ese campo en el select nomas me dice que no esta contenida en una funcion de agregado o GROUP BY.
Y si la agrego con un GROUP BY me empieza a mostrar el campo IdSuc (que tenia distinct) repetido.
Asi funcion mal:
--- Código: Text --- SELECT DISTINCT idSuc, MAX (fechabackup),descripcion FROM backuppdv GROUP BY idSuc,observacion ORDER BY IdPSuc
Que puedo probar?
--- Fin de la cita ---
Ese error me suena a access ¿verdad? :scream:
Bueno, comenzando por el principio. Comenzaste el hilo definiendo una tabla que luego no utilizas, mirá:
"MAX (fechabackup) debería ser MAX (fechaback)"
"descripcion FROM backuppdv GROUP BY idSuc,observacion"
"ORDER BY IdPSuc" :P ¿error de tipeo? "ORDER BY IdSuc"
Ok, si utilizas la función "MAX", no es necesario el uso de "DISTINCT" ya que "MAX" solo va a devolverte un solo campo.-
No tengo SQL Server instalado pero me parece recordar que el error de "...no esta contenida en una funcion de agregado..." se soluciona colocando en la cláusula GROUP todos los campos que incluiste en el select tal y como están.-
Esto lo probé en MySQL y me quedó así:
--- Código: Text ---SELECT idSuc, MAX(fechaback), descripcion FROM backuppdv GROUP BY idSuc ORDER BY IdSuc
:beer:
Navegación
[#] Página Siguiente
Ir a la versión completa