none
Создать запрос RRS feed

  • Вопрос

  • есть таблица stat, в ней поля card_num,date,cbalance.
    нужно выбрать все уникальные card_num и соответвующее одно значение cbalance при условии, что date етого card_num самая большая

    как на sql написать?

    так чтоб одному card_num соответствувало самое большое значение date и при етому еще показывало свое значение cbalance

    • Изменено Letos07 14 июля 2012 г. 15:04
    • Изменен тип Letos07 16 июля 2012 г. 9:47
    14 июля 2012 г. 15:03

Ответы

  • и? какие у вас возникли сложности? хелп принципиально не хотите читать?

    update t1
    set t1.cost = t2.cbalance
    from [база данных1].[схема].Information t1
      inner join ( select top 1 with ties * 
                     from [база данных2].[схема].stat
                     order by row_number() 
                     over ( partition by card_num 
                            order by date desc 
                          )	
                 ) t2
        on t1.uid  = t2.card_num


    http://www.t-sql.ru

    • Помечено в качестве ответа Letos07 17 июля 2012 г. 11:37
    17 июля 2012 г. 4:08
    Модератор

Все ответы

  • select top 1 with ties * from stat
    order by row_number() over ( partition by card_num order by date desc )


    http://www.t-sql.ru

    • Помечено в качестве ответа Letos07 16 июля 2012 г. 9:40
    16 июля 2012 г. 8:35
    Модератор
  • Спасибо))))

    смотри у меня есть база данных1, в ней таблица Information, и поля uid и cost.

    Теперь мне надо из того запроса что ты написал обновить значения uid и cost соответствующими данными card_num и cbalance, чтоб card_num из базы2,таблицы stat равнялося uid базы1,  таблицы Information

    • Изменено Letos07 16 июля 2012 г. 9:51
    16 июля 2012 г. 9:40
  • и? какие у вас возникли сложности? хелп принципиально не хотите читать?

    update t1
    set t1.cost = t2.cbalance
    from [база данных1].[схема].Information t1
      inner join ( select top 1 with ties * 
                     from [база данных2].[схема].stat
                     order by row_number() 
                     over ( partition by card_num 
                            order by date desc 
                          )	
                 ) t2
        on t1.uid  = t2.card_num


    http://www.t-sql.ru

    • Помечено в качестве ответа Letos07 17 июля 2012 г. 11:37
    17 июля 2012 г. 4:08
    Модератор