|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.01.2015, 08:48 | #1 |
Пользователь
Регистрация: 01.10.2014
Сообщений: 11
|
количества обращений
Помогите выполнить запросс
количества обращений Клиентов за один день до дня рождения, в день рождения, один день после дня рождения за период с 1.07.2014 года по 18.01.2015 года |
20.01.2015, 09:20 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Сколько дней до (после) дня рожденя?
На примере MS SQL. Допустим есть date1 - дата рождения и date2 - с этой датой сравнение Код:
=0 - date2 в день рождения =1 - date2 на следующий день после дня рождения от этого и пляши в запросе, приспособив к своей СУБД ADD лучше пожалуй формулу так сделать Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 20.01.2015 в 09:37. |
20.01.2015, 09:49 | #3 |
Пользователь
Регистрация: 01.10.2014
Сообщений: 11
|
с 1.07.2014 года по 18.01.2015 года
мне получается каждый день перебирать придётся? |
20.01.2015, 09:58 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Зачем? Есть дата обращения - вот на неё условие попадания в заданный интервал + она же сравнивается с датой рождения по выше приведенной формуле
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
20.01.2015, 10:14 | #5 |
Пользователь
Регистрация: 01.10.2014
Сообщений: 11
|
Select * from Dogovor d
Left join Clients cl on cl.ID=d.ID_CLIENT where DATEDIFF(day,DATEADD(Year,YEAR(2015 )-YEAR(cl.D_BD),cl.D_BD),-1) Последний раз редактировалось Arsenal2; 20.01.2015 в 10:24. |
20.01.2015, 10:29 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Как-то в этом направлении
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
20.01.2015, 10:36 | #7 |
Пользователь
Регистрация: 01.10.2014
Сообщений: 11
|
как то так. Правильно?
SELECT SUM(CASE WHEN DATEDIFF(day,DATEADD(Year,YEAR(Dogo vor.D_DATEINPUT)-YEAR(Clients.D_BD),Clients.D_BD),Do govor.D_DATEINPUT)=-1 THEN 1 ELSE 0 END) AS [За день], SUM(CASE WHEN DATEDIFF(day,DATEADD(Year,YEAR(Dogo vor.D_DATEINPUT)-YEAR(Clients.D_BD),Clients.D_BD),Do govor.D_DATEINPUT)=0 THEN 1 ELSE 0 END) AS [В день], SUM(CASE WHEN DATEDIFF(day,DATEADD(Year,YEAR(Dogo vor.D_DATEINPUT)-YEAR(Clients.D_BD),Clients.D_BD),Do govor.D_DATEINPUT)=1 THEN 1 ELSE 0 END) AS [На следующий день] FROM Clients Left join Dogovor on Dogovor.ID_CLIENT=Clients.ID WHERE Dogovor.D_DATEINPUT BETWEEN '20140701' AND '20150118' |
20.01.2015, 10:38 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Дык выполните запрос, результат и скажет правильно или нет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
много обращений к базе | Shyt | SQL, базы данных | 6 | 27.03.2014 17:34 |
Отслеживание обращений к файлу или папке (C++) | Аня_Ф | Помощь студентам | 6 | 02.10.2012 21:05 |
Перехват обращений к реестру | Fedor666 | Win Api | 2 | 17.10.2011 18:44 |
Клиент-серверная прога с подсчетом обращений | usserrr | БД в Delphi | 1 | 12.05.2011 16:30 |