У меня есть этот запрос ниже:
SELECT distinct COUNT(Status) AS [Transactions], sender AS [Supplier],
left(DATENAME(mm, Date_Reported), 3) AS Month, DATENAME(yyyy, Date_Reported) AS Year
FROM TX
and Date_Reported >= DATEADD(MONTH, -13, CAST(GETDATE() AS DATE))
GROUP BY DATENAME(mm, Date_Reported), DATENAME(yyyy, Date_Reported), sender
ORDER BY sender, Year, Month DESC;
Это дает мне таблицу, как показано ниже:
TX | Supplier | Month | Year
Теперь выше может иметь X строк с одним и тем же поставщиком и связанным значениемс этим, как показано ниже:
**TX | Supplier | Month | Year**
1 | A | Oct | 2017
5 | A | Jan | 2017
3 | A | Mar | 2018
2 | A | Sep | 2017
Это относится ко всем поставщикам, поэтому вместо длинной таблицы с множеством строк мне нужны отдельные поставщики и их значения в краткой таблице, как показано ниже:
Supplier | May 17 | Jun 17 | Jul 17 ... | May 18 |
Я также хотел бы добавить два дополнительных столбца: среднее значение за последние 13 месяцев (т.е. с 17 мая по 18 мая), а также общее количество за последние 13 месяцев, поэтому итоговая таблица должна выглядеть следующим образом:
Supplier | May 17 | Jun 17 | Jul 17 ... | May 18 | Average | Total
Я ценю, что спрашиваю много, но я надеюсь, что кто-то может помочь мне с ОДНОМ ЕДИНСТВЕННЫМ запросом, который может сделать ВСЕ из вышеперечисленного.
Заранее благодарю :)