У меня есть таблица, которая хранит данные, такие как ниже:SQL Server 2008: случай, когда приращения авто/данные группы
MonthOpened | MONTH | Collected
--------------------------------
01/05/2012 | 1 | £10.00
01/05/2012 | 2 | £30.00
01/05/2012 | 3 | £30.00
01/05/2012 | 4 | £30.00
01/05/2012 | 5 | £30.00
01/05/2012 | 6 | £10.00
01/05/2012 | 7 | £30.00
01/05/2012 | 8 | £50.00
01/05/2012 | 9 | £10.00
01/05/2012 | 10 | £50.00
01/05/2012 | 11 | £100.00
01/05/2012 | 12 | £141.92
01/05/2012 | 13 | £100.00
01/05/2012 | 14 | £50.00
Месяц открыл это дата счета, где выносимые, месяц это месяц, что они заплатили (месяц 1 - это месяц, в который был открыт счет (май), месяц 2 - июнь, месяц 3 - июль и т. д. На данный момент это продолжается до 36-го месяца.
Для справки эти данные переходит в матрицу SSRS и выглядит так
MONTH |1 |2 | 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14
----------------------------------------------------------------------------------------------------------------
01/05/2012|£10.00|£30.00|£30.00|£30.00|£30.00|£10.00|£30.00|£50.00|£10.00|£50.00|£100.00|£141.92|£100.00|£50.00
Меня попросили сгруппировать их вместе через 12 месяцев, , так что 1-12 появятся, затем 18, 24, 30, 36 и т. Д.. Я сделал это как быстро исправить, делая общий случай, когда
CASE
WHEN ISNULL(sp.Month, N'01') BETWEEN 01 AND 12
THEN ISNULL(sp.Month, N'01')
WHEN ISNULL(sp.Month, N'01') BETWEEN 13 AND 18
THEN 18
WHEN ISNULL(sp.Month, N'01') BETWEEN 19 AND 24
THEN 24
WHEN ISNULL(sp.Month, N'01') BETWEEN 25 AND 30
THEN 30
WHEN ISNULL(sp.Month, N'01') BETWEEN 31 AND 36
THEN 36
ELSE ''
END AS MONTH
Однако мне нужно, чтобы получить его так, чтобы она автоматически группы так, что он принимает в счета будущих месяцев (42, 48, 54, 60. ...), но мне нужно сделать это в окне запросов SSRS, и havent смог найти способ заставить его работать.
@ allan-s-hansen Мне нужно уметь отображать первые 12 месяцев на своем собственном, а затем группировать каждые 6 после 12 месяцев – GPH
Если интервал составляет всего 6 месяцев, то вы можете сделать деление на 6 для получения интервальных чисел. Если вы затем хотите опустить первые 12 (2 интервала), сделайте это с помощью случая. Но выполнение разделения, чтобы вы могли получить интервал программно, должно помочь вам упростить запрос –