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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2014, 10:43   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию Проверка данных за определенный период

Здравствуйте уважаемые программа писатели, перейду сразу к вопросу.. Вообщем в силу не знания языка T-SQL не могу составить правильно запрос.
Есть есть некая таблица куда записываются примерно следующие данные.
Пользователь
Индекс, Id_Пользователя, Статус, Время записи.
Статус пользователя по умолчанию 1 и может изменяться на 2

Так вот, мне не нужно выяснить, есть ли в таблицы такой пользователь у которого статус за три месяц не был изменен на 2.

Последний раз редактировалось coNsept; 10.11.2014 в 11:13.
coNsept вне форума Ответить с цитированием
Старый 10.11.2014, 10:48   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

поле "Время записи" какой тип имеет?
Если нормальный (date/datetime), то используйте запрос с BETWEEN

Цитата:
языка T-SQL
судя по этому, речь идёт про MS SQL Server?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.11.2014, 11:13   #3
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Да, mssql. Время записи datetime.

Последний раз редактировалось coNsept; 10.11.2014 в 11:17.
coNsept вне форума Ответить с цитированием
Старый 10.11.2014, 12:13   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
статус за три месяц не был изменен
за последние три месяца либо существует такой интервал не важно когда? Это важно, совершенно разные запросы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.11.2014, 13:23   #5
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

За определенный период времени, не за последние три месяца.
Я сделаю поправочку в описание запроса.
Статус пользователя не изменяется на два а он просто вставляется с другим статусом, то есть пользователей с одним ID может существовать большое множество в таблицы.

Последний раз редактировалось coNsept; 10.11.2014 в 13:26.
coNsept вне форума Ответить с цитированием
Старый 10.11.2014, 15:01   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну коль определенный то @DateFrom - дата начала периода в 3 месяца
Код:
SELECT P1.*
  FROM Пользователь P1
  WHERE P1.[Время записи]<@DateFrom AND
        P1.Статус=1 AND
        NOT EXISTS(SELECT 1
                     FROM Пользователь P2
                     WHERE P2.Id_Пользователя=P1.Id_Пользователя AND
                           P2.Статус=2 AND
                           P2.[Время записи] BETWEEN @DateFrom AND DATEADD(month,3,@DateFrom)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск максимального значения в диапазоне за определенный период vetal623 Microsoft Office Excel 2 08.06.2012 05:37
Выборка значений за определенный период IBPost Microsoft Office Excel 8 11.02.2011 01:18
Средняя за определенный период wallstreet Microsoft Office Access 10 16.03.2010 20:40
посчитать значение по каждой статье за определенный период для каждого листа Graver Microsoft Office Excel 5 04.12.2009 01:31