Well, if you need only the newest line, you can use the following:
SELECT TOP 1 key, name, value, date
FROM myTable
ORDER BY date desc
This should return a single row with the newest date in this table.
, :
SELECT name, max(date)
FROM myTable
WHERE key in(1,2,3,4)
GROUP BY name
- . , , , , group by.
, , , , :
;with namesWithMaxDate as(
select
name
,max(date) as date
from
myTable
group by
name
)
select
myTable.[key]
,myTable.name
,myTable.value
,myTable.date
from myTable
inner join
namesWithMaxDate
on
myTable.name = namesWithMaxDate.name and
myTable.date = namesWithMaxDate.date
, , , . , .
: .
select
myTable.[key]
,myTable.name
,myTable.value
,myTable.date
from myTable
inner join
( select
name
,max(date) as date
from
myTable
group by
name ) as namesWithMaxDate
on
myTable.name = namesWithMaxDate.name and
myTable.date = namesWithMaxDate.date
.
.