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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2013, 13:40   #1
Олегу
 
Регистрация: 22.08.2013
Сообщений: 4
По умолчанию SQL-запрос по датам

Добрый день друзья. Помогите написать SQL запрос возвращающий количество строк в таблице за предыдущий год.
SQL SELECT count(*) FROM dbo.***
WHERE (Условие вытягивающее из поля с датой предыдущий год). Или я в чем то ошибаюсь? HELP.
Очень надеюсь на вашу помощь.
Заранее спасибо.
Олегу вне форума Ответить с цитированием
Старый 22.08.2013, 13:42   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Коли dbo, то видимо MS SQL. В описание функций даты-времени не заглядывали? Например YEAR(MyDateField)=2012
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.08.2013, 13:46   #3
Олегу
 
Регистрация: 22.08.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Коли dbo, то видимо MS SQL. В описание функций даты-времени не заглядывали? Например YEAR(MyDateField)=2012
Заглядывал, но ситуация такая, что у меня период не статический, если я в 2013м укажу : давай выбирай мне 2012 - он выберет, не вопрос. Мне нужно в условии указать, что-то вроде: не смотря какие даты последние по каким последним годам в таблице имеются - взять от них предыдущий год. и там уже буду считать что мне надо.

Точнее если быть в Таблице А - есть года 2002-2004, а в таблице Б - года 2010-2012. И в той и в другой таблицах предыдущие года от максимального будут разные...

Как-то так.

Последний раз редактировалось Олегу; 22.08.2013 в 13:52.
Олегу вне форума Ответить с цитированием
Старый 22.08.2013, 13:56   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

where (select year(max(поле с датой)) from таблица)=year(поле с датой)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.08.2013, 13:18   #5
Олегу
 
Регистрация: 22.08.2013
Сообщений: 4
Печаль Число записей за предыдущий год

Цитата:
Сообщение от Stilet Посмотреть сообщение
where (select year(max(поле с датой)) from таблица)=year(поле с датой)
НЕТ ЭТО НЕ РАБОТАЕТ.

Нужно получить что - то вроде этого

SQL SELECT COUNT(*) as [Число записей за прошлый год]
WHERE Период LIKE MAX(YEAR(Период)-1);

Но это не работает. логика понятна...

HELP. HELP. HELP

Последний раз редактировалось Олегу; 28.08.2013 в 13:28.
Олегу вне форума Ответить с цитированием
Старый 28.08.2013, 14:03   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
НЕТ ЭТО НЕ РАБОТАЕТ.
а не забыли ли вы прибавить/отнять 1 ?
Код:
where year(date) = ( select year(max(date)) -1 from t )
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 28.08.2013, 16:58   #7
Олегу
 
Регистрация: 22.08.2013
Сообщений: 4
Радость УРА

Цитата:
Сообщение от evg_m Посмотреть сообщение
а не забыли ли вы прибавить/отнять 1 ?
Код:
where year(date) = ( select year(max(date)) -1 from t )
Спасибо за помощь!!!

Для тех кто столкнется с подобной проблемой пишу код который возвращает количество строк за предыдущий от максимального года в таблице в поле "Период".

Код:
SQL SELECT COUNT(*) AS [NRecLastYear]
FROM [$(vTabClass)$(vTabName)]
WHERE YEAR(Период) = ( SELECT YEAR(MAX(Период))-1 FROM [$(vTabClass)$(vTabName)]);
Всем кто мне пытался помочь - ОГРОМНОЕ СПАСИБО, что не бросили в трудную минуту )))))))))))))))))))))))))))
Олегу вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос по датам Стингуля Microsoft Office Access 5 20.05.2013 09:05
Добавить выборку по датам в запрос Arteww SQL, базы данных 1 27.05.2011 12:43
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26