none
sql query RRS feed

  • Pregunta

  • hola,

    estoy realizando una query donde tengo una tabla con id, valor y fecha, me gustaria agregar una columna donde me salga el valor de la ultima fecha por cada id

    saludos

    domingo, 13 de diciembre de 2020 17:52

Todas las respuestas

  • Hola stephyf:

    Puedes utilizar el operador apply.

    Declare @table table (id int, valor int, fecha date)
    insert into @table (id, valor, fecha)
    values
    (1,1,'20201201'),
    (1,2,'20201202'),
    (1,3,'20201203'),
    (1,1,'20201204'),
    (2,4,'20201201'),
    (2,1,'20201210'),
    (2,5,'20201211'),
    (2,7,'20201215');
    
    Select t.*, f.fecha
    	from @table t
    	cross apply 
    	(
    		Select top(1) fecha 
    		from @table x
    		where x.id = t.id
    		order by fecha desc
    	) f

    Utilizas cross apply y en la consulta de este conjunto el operador top. La magia del operador apply está en que el conjunto interior "t" se iguala al conjunto exterior "x" por su id.

    Cross Apply

    https://javifer2.wordpress.com/2020/06/27/operador-apply/

    domingo, 13 de diciembre de 2020 20:38
  • hola

    pero me gustaria que me diera el valor en vez de la fecha en la columna.

    osea que buscara por id la ultima fecha y me dijera cual es su valor en esa ultima fecha 

    saludos

    miércoles, 27 de enero de 2021 9:57