SSRS 2008 - Почему определенные месяцы не дают результатов в матрице, а результаты отображаются в области запросов SQL? - PullRequest
0 голосов
/ 06 февраля 2019

Я искал, но не смог найти другие запросы, подобные этому.У меня есть запрос с параметрами месяца и года, и значения суммируются в матрице.Все работает хорошо в течение месяцев с января по сентябрь, включая 2018 год, однако, когда я тестирую его с ноябрем или декабрем 2018 года и январем 2019 года, я получаю результаты в области запросов, но ничего в матрице (даже нули).
Предложение whereв моем запросе: (отредактировано 2/2/18, чтобы показать обновленный ГГГГ)

WHERE        (DATEPART(MM, createdon) = @selectedMonth) AND (DATEPART(YYYY, createdon) = @selectedYear) OR
                         (DATEPART(MM, sb_provisionalstatuschangedate) = @selectedMonth) AND (DATEPART(YYYY, sb_provisionalstatuschangedate) = @selectedYear) OR
                         (DATEPART(MM, sb_confirmedstatuschangedate) = @selectedMonth) AND (DATEPART(YYYY, sb_confirmedstatuschangedate) = @selectedYear) OR
                         (sb_status = 3) AND (statecode = 1) AND (DATEPART(MM, sb_eventdate) = @selectedMonth) AND (DATEPART(YYYY, sb_eventdate) = @selectedYear) OR
                         (statecode = 2) AND (DATEPART(MM, actualclosedate) = @selectedMonth) AND (DATEPART(YYYY, actualclosedate) = @selectedYear)
ORDER BY sb_eventdate, BookingName

Я установил доступные значения в параметре @month для месяцев от 1 до 12 и в параметре @year для 2018 годадо 2022 года (включительно).enter image description here

enter image description here

Пример одного из выражений (первый столбец):

=Sum(iiF(DatePart("m", Fields!createdon.Value) = Parameters!selectedMonth.Value And DatePart("yyyy", Fields!createdon.Value) = Parameters!selectedYear.Value, 1, 0))

Я проверил все на предмет выбора пользователя в январе 2018 года, экспортировал результаты и посчитал, какими должны быть результаты, и все было правильно.enter image description here

Поскольку мои тесты проводились на данных за 18 января, я также тестировал все остальные месяцы в 2018 году. Все шло хорошо, пока я не добрался до ноября и декабря, когда яне получить результатов - даже нули.enter image description here

Обычно это указывает на проблему с данными и, следовательно, на отсутствие результатов, поэтому я выполнил запрос в области запросов SQL (вставив 12, где запрос показывает @Month, и 2018, где запроспоказывает @year, который я экспортировал и проверил - (все первые 10 результатов должны учитываться в матрице в разделе «отменено»). Есть результаты для всех столбцов. Если бы не было результатов, я все равно ожидал бысм. нули. enter image description here

Кто-нибудь может объяснить, почему я ничего не получаю за Новемебр, 18 декабря, а также за 19 января?

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

в 4-й строке вашего запроса: (DATEPART (MM, sb_eventdate) = 2018)

Это должно быть: (DATEPART (YYYY, sb_eventdate) = 2018)

0 голосов
/ 08 февраля 2019

Мне удалось разобраться с проблемой, и это было то, что был создан другой экземпляр базы данных, который теперь стал основной базой данных, и тот, который раньше был основной базой данных, теперь только для чрезвычайной ситуации - очевидно, не имеет местаодни и те же данные.Я запрашивал один экземпляр на панели запросов SQL, а другой - в Visual Studio.Я прошу прощения за то, что потратил ваше время на то, что не произошло бы, если бы наши связи были лучше.

0 голосов
/ 06 февраля 2019

Попробуйте: в пункте «DATEPART (YY») укажите «DATEPART (YYYY»)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...