12.05.2016, 13:27 | #1 |
Участник
|
SSRS создание календаря событий
Добрый день,
Не совсем уверен с разделом, если ошибся простите. Есть идея создания календаря событий, должно выглядеть следующим образом: Список состоящий из дат, под каждой датой список мероприятий, которые проходят в этот день. На данный момент сделал репорт, который выгружает мероприятия, которые запланированы в определенный период, и составляет список, но записывает только в дату когда начинается мероприятие. Запрос в SQL: Код: SELECT CRMAF_event.new_name, CRMAF_event.new_startdate, CRMAF_event.new_enddate, CRMAF_event.new_tutoridname, tutor.be_flipchart, tutor.be_owncomputer, tutor.be_ohp, tutor.be_preferredcomputer, venue.new_roomidname AS room, venue.new_venueidname AS venue FROM FilteredNew_Event AS CRMAF_event INNER JOIN FilteredContact AS tutor ON CRMAF_event.new_tutorid = tutor.contactid INNER JOIN FilteredNew_City AS city ON CRMAF_event.new_cityid = city.new_cityid INNER JOIN FilteredNew_EventVenue AS venue ON CRMAF_event.new_eventid = venue.new_eventid WHERE (city.new_country = 'Russia') AND (CRMAF_event.new_tutoridname <> 'ATC, Administrator') AND (CRMAF_event.new_name NOT LIKE '%(CANCELLED)') ORDER BY CRMAF_event.new_startdate Вопрос: как сделать так что бы событие отображалось во всех датах, когда оно проходит, а не только когда начинается? |
|
12.05.2016, 14:09 | #2 |
Чайный пьяница
|
Я бы подошёл к такой задаче следующим образом:
1. Создал временную таблицу с единственным полем - ДатаВремя. 2. Используя один из многих вариантов заполнил бы эту таблицу нужным вам интервалом. 3. Использовал примерно следующий код: Declare @dates table(eventdate datetime) --population of table with required datetime intervals X++: SELECT CRMAF_event.new_name, CRMAF_event.new_startdate, CRMAF_event.new_enddate, CRMAF_event.new_tutoridname, tutor.be_flipchart, tutor.be_owncomputer, tutor.be_ohp, tutor.be_preferredcomputer, venue.new_roomidname AS room, venue.new_venueidname AS venue, d.eventdate FROM FilteredNew_Event AS CRMAF_event INNER JOIN FilteredContact AS tutor ON CRMAF_event.new_tutorid = tutor.contactid INNER JOIN FilteredNew_City AS city ON CRMAF_event.new_cityid = city.new_cityid INNER JOIN FilteredNew_EventVenue AS venue ON CRMAF_event.new_eventid = venue.new_eventid Inner Join @dates d On CRMAF_event.new_startdate <= d.eventdate and CRMAF_event.new_enddate >= d.eventdate WHERE (city.new_country = 'Russia') AND (CRMAF_event.new_tutoridname <> 'ATC, Administrator') AND (CRMAF_event.new_name NOT LIKE '%(CANCELLED)') ORDER BY CRMAF_event.new_startdate
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
16.05.2016, 13:39 | #3 |
Moderator
|
Возможно я что-то пропустил, но я решительно не понял зачем нужна временная таблица и как должен выглядеть итоговый календарь
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
|