Как построить sql-запрос с выводом актуальных данных по дням?
Пардон, в первый раз не внимательно вопрос прочитал.select
  tmp.name,
  test.val
from
  ( 
    select 
      name, 
      max(date) as max_date
    from test
    group by name
  ) as tmp
join test on test.name=tmp.name and test.date=tmp.max_date
Обязательно наличие индекса по name и date
Попробуй примерно так SELECT name, val FROM table where convert([ТвоеНазваниеДейта], 102) 
    = convert(getdate(), 102) 
А дальше уже там group by, order by... =)