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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2012, 11:19   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

пожалуйста.

Цитата:
Не могли бы подсказать а как @ТекДата определить автоматически.
не понял. у вас же ТекДата и так определяется автоматически - туда берётся текущая дата!
а вообще, если Вам надо ограничить диапазон - то используйте параметры (те же датапикеры прекрасно для этого подойдут)


раз уж зашёл об этом разговор.
то я вообще не понимаю, зачем вот эти строчки в коде (выделил красным):
Цитата:
Код:
declare @ТекДата datetime = '20121031';
set @ТекДата=getdate();
select   dateadd(dd, -( day(@ТекДата) ), @ТекДата) as 'Last Day of Previous Month'
select dateadd(mm, datediff(mm, 0, getdate()), 0)-1
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.10.2012, 11:32   #12
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Всем спасибо, тема закрыта.
Код:
declare @ТекДата datetime;
set @ТекДата=getdate();
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 )
ins813 вне форума Ответить с цитированием
Старый 12.10.2012, 11:59   #13
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Тема снова открыта , да затупил... Не много по-другому: Подскажите плиз, Каким образом вывести данные поля sdano_litr, которые соответ последне записи в поле datavid
ins813 вне форума Ответить с цитированием
Старый 12.10.2012, 12:35   #14
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию Запрос по последней записи в MSSql

Еще раз здравствуйте, Такая проблема у меня: Нужен запрос - есть Три поля (marka_avto,datvid,sdan_litr), нужно чтобы выводилось значения sdan_litr по последней записи datvid предыдущего месяца (допустим я создаю отчет по дате с 1 окт по 31 окт а выводит sdan_litr за 29сент и 30 сент) .
Допустим:
марка Датавыдачи сдан_литров
КАМАЗ 29.09.12 20
ТАТРА 30.09.12 15
ins813 вне форума Ответить с цитированием
Старый 12.10.2012, 13:08   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

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

ок, минуту
ins813 вне форума Ответить с цитированием
Старый 12.10.2012, 13:49   #17
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Датавыдачи Марка_АВТо ФИО водит сдан_литров
29,09,12 КАМАЗ Петров 30
29.09.12 ТАТРА .. 25
30.09,12 ЖИГУЛИ .. 18
30,09,12 ЗАЗ969 .. 20

1.10.12 ВАЗ ... 10
2.10.12 ВОЛГА .. 15
31.10,12 НИВА .. .. 19
Вот, например моя таблица, конечно там еще всякие поля, Допустим мне Нужно выпустить Отчет в Ексель с 1,10,12 по 31,10,12. Я создаю отчет(в моем случае через Дататаймпикеры) за этот период и мне нужно будет в один из столбцов (Ексель) выгрузить ПОСЛЕДНИЕ занчения (Sdano_litr) предыдущего Месяца. Т.е. должнополучиться:
Марка АВто ..... Сдано за пред месяц
30
25
18
20
ins813 вне форума Ответить с цитированием
Старый 12.10.2012, 14:28   #18
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
SELECT G.*,
    (SELECT TOP 1 G1.sdano_litr 
       FROM gorn G1
       WHERE G1.marka_avto=G.marka_avto AND YEAR(G1.datvid)=2012 AND MONTH(G1.datvid)=9
       ORDER BY G1.datvid DESC) AS sdano_litr0
  FROM gorn G
  WHERE YEAR(G.datvid)=2012 AND MONTH(G.datvid)=10
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.10.2012, 14:36   #19
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Аватар ты Лучший !! Премного благодарен, спасибо большое ! А вот как автоматом брать значения месяца, может ка-то через getdate ?
ins813 вне форума Ответить с цитированием
Старый 12.10.2012, 14:42   #20
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Текущая дата из SQL здесь не при делах, как отчет за прошлый месяц получить? Можно в проге сформировать текст запроса на основании заданного периода. Любой язык программитрования имеет возможности работы с датой. Или сделать хранимку, передать ей год и месяц, а она сама вычислит год и номер предыдущего месяца. См. фунции даты-времени MSSQL
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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