powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите написать запрос.
10 сообщений из 10, страница 1 из 1
Помогите написать запрос.
    #32042396
Алексeй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть таблица со структурой Vn (int) - идентификатор устр-ва, Measure(DateTime) - дата измерения, Val (smallmoney) - измеренное значение.
В ней имеются данные
Vn Measure Val
1 01.01.2002 100.00
2 01.01.2002 200.00
3 01.01.2002 300.05
1 02.01.2002 101.00
2 02.01.2002 202.00
3 02.01.2002 303.05
1 03.01.2002 105.00
2 03.01.2002 207.00
3 03.01.2002 308.05
Как мне написать такой запрос, чтобы он вернул только записи с максимальной датой до 03.01.2002, т.е с датой = 02.01.2002?
...
Рейтинг: 0 / 0
Помогите написать запрос.
    #32042397
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from table where measure=(select max(Measure) from table)
...
Рейтинг: 0 / 0
Помогите написать запрос.
    #32042401
Алeксей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так он выдаст за 03.01.2002. А мне надо - 02.01.2002.
...
Рейтинг: 0 / 0
Помогите написать запрос.
    #32042402
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from table where measure=(select max(Measure) from table where Measure<'20020103')
...
Рейтинг: 0 / 0
Помогите написать запрос.
    #32042403
Алeксей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А в общем виде?

Разве сравнение datetime с "20020103" корректно?
...
Рейтинг: 0 / 0
Помогите написать запрос.
    #32042421
genie_vats
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй (:
...
Рейтинг: 0 / 0
Помогите написать запрос.
    #32042426
Фотография BlackCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, в общем виде это подойдет. Только в SELECT все поля надо перечислить а вместо data поставь свое.
select max(data) from table1
where datepart(day,data)<(select datepart(day,getdate()))
...
Рейтинг: 0 / 0
Помогите написать запрос.
    #32042429
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем виде:

select * from table where measure=(select max(Measure) from table where Measure<@ActualDate)

Реализуй в виде функции и все будет тип топ
...
Рейтинг: 0 / 0
Помогите написать запрос.
    #32042430
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Разве сравнение datetime с "20020103" корректно?

Корректно, документировано и крайне рекомендуется именно в формате YYYYMMDD.
...
Рейтинг: 0 / 0
Помогите написать запрос.
    #32042462
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю будет верно...
Код: plaintext
1.
2.
3.
4.
select tbl.*
from tbl, (select Vn,max(Measure) m
             from tbl
             group by Vn) t
where tbl.Vn=t.Vn AND tbl.Measure=t.m
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите написать запрос.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]