Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2012, 08:49   #1
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию Запрос на последнюю запись в столбце

Здравствуйте, подскажите, как правильно организовать запрос (получается отфильтровать) на то, чтобы из столбца_Дата брать последнюю запись и по этому критерию взять из столбца_Горючее соответ. значение ? спасибо.
ins813 вне форума Ответить с цитированием
Старый 12.10.2012, 09:01   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
брать последнюю запись
По какому критерию последняя запись? Знаю один только - сортируем и последняя в порядке сортировки. Если в ORDER BY поставить DESC - то будет первой
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.10.2012, 09:10   #3
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Я имел ввиду По последней дате месяца(Столбец_Дата) вывести соответ ему знацение из столбца_Горючее
ins813 вне форума Ответить с цитированием
Старый 12.10.2012, 09:37   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ins813
Я имел ввиду По последней дате месяца(Столбец_Дата) вывести соответ ему знацение из столбца_Горючее
ins813, так Вам и ответили, как это сделать!
сортируете под Столбцу_Дата в обратном порядке, берёте 1-ю запись, по ней выбираете нужные данные из столбца горючее.

насколько я поинмаю, Вам нужно что-то такое:
Код:
select TOP 1 [Столбец_Горючее] from ВашаТаблица group by [Столбец_Дата] desc
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.10.2012, 09:46   #5
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Код:
select TOP (1) [Столбец_Горючее] from ВашаТаблица ORDER by [Столбец_Дата] desc
Ваш вариант был немного неверным, я подправил но он мне выдает значение на последнюю дату
ins813 вне форума Ответить с цитированием
Старый 12.10.2012, 09:48   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А нужный месяц во WHERE кто будет задавать?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.10.2012, 10:20   #7
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Помогли с кодом, работает норм, но выводит только одну запись

Код:
declare @ТекДата datetime = '20121031';
set @ТекДата=getdate();
select   dateadd(dd, -( day(@ТекДата) ), @ТекДата) as 'Last Day of Previous Month'
select dateadd(mm, datediff(mm, 0, getdate()), 0)-1 
select	top(1) sdano_litr
from	dbo.gorn
where	Year(dateadd(mm, -1 , @ТекДата)) = Year(datvid) and
		Month(dateadd(mm, -1 , @ТекДата)) = Month(datvid)
		
order by datvid desc
ins813 вне форума Ответить с цитированием
Старый 12.10.2012, 10:27   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
но выводит только одну запись
Вы же этого и хотели
Цитата:
как правильно организовать запрос (получается отфильтровать) на то, чтобы из столбца_Дата брать последнюю запись и по этому критерию взять из столбца_Горючее соответ
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.10.2012, 10:36   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так ?
Код:
select sdano_litr from dbo.gorn
where datvid in (select top(1) datvid
           from	dbo.gorn
           where	Year(dateadd(mm, -1 , @ТекДата)) = Year(datvid) and
		Month(dateadd(mm, -1 , @ТекДата)) = Month(datvid)
       order by datvid desc )
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.10.2012, 10:44   #10
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Да, спасибо Большое, работает, видимо я плохо изложил свою проблему. Не могли бы подсказать а как @ТекДата определить автоматически. Я на Делфовой форме создаю отчет, там Два Дататаймпикера, которые фильтруют данные по дате(соответственно) может как-то через них ?
ins813 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать ссылку на последнюю непустую ячейку в обновляемом столбце SVGuss Microsoft Office Excel 34 19.02.2013 16:12
последняя запись в столбце ALEKS2008 Microsoft Office Excel 3 18.06.2010 13:29
переход на последнюю запись при открытии формы Ja-De Microsoft Office Access 2 18.01.2010 14:18
Как выбрать последнюю запись в таблице? Yur@ БД в Delphi 11 30.12.2009 18:11
Как найти последнюю запись в таблице? dsapa Microsoft Office Excel 2 21.07.2009 16:37