Bases de Datos > SQL Server

 Consulta A Una Tabla

(1/6) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa