Walczę z jednym zapytaniem i nie mogę sobie z tym poradzić. Załóżmy że jest sobie tabela, powiedzmy 'sprzedaż':
+---------------------------+-----------+-----------+
| Data | Nazwa | Ilosc |
+---------------------------+-----------+-----------+
| 2019-11-06 00:00:00.000 | Towar 1 | 10 |
| 2019-11-03 00:00:00.000 | Towar 2 | 2 |
| 2019-10-29 00:00:00.000 | Towar 1 | 24 |
| 2019-10-27 00:00:00.000 | Towar 2 | 8 |
| 2019-10-26 00:00:00.000 | Towar 3 | 5 |
| 2019-10-21 00:00:00.000 | Towar 1 | 7 |
| 2019-10-18 00:00:00.000 | Towar 2 | 19 |
| 2019-10-14 00:00:00.000 | Towar 1 | 4 |
| 2019-10-12 00:00:00.000 | Towar 2 | 12 |
| 2019-10-07 00:00:00.000 | Towar 1 | 26 |
| 2019-10-05 00:00:00.000 | Towar 2 | 18 |
| 2019-10-04 00:00:00.000 | Towar 3 | 9 |
+---------------------------+-----------+-----------+
Potrzebuję z tabeli wyciągnąć dane nt. sprzedaży np. w poprzednim tygodniu, tutaj sobie radzę:
SELECT Nazwa, SUM(Ilosc) FROM Spredaz
WHERE datepart(wk, Data) = datepart(wk, GETDATE()) - 1
GROUP BY Nazwa
W efekcie dostaję:
+-----------+-----------+
| Nazwa | Ilosc |
+-----------+-----------+
| Towar 1 | 10 |
| Towar 2 | 2 |
+-----------+-----------+
Czyli OK. Problem mam jak uzyskać efekt w którym w jednej tabeli w osobnych kolumnach będę miał Ilość sprzedanych towarów w tygodniu -1, tygodniu -2, tygodniu -3 itd. Czyli chciałbym uzyskać taki efekt:
+-----------+-----------+-----------+-----------+
| Nazwa | Tydz -1 | Tydz -2 | Tydz -3 |
+-----------+-----------+-----------+-----------+
| Towar 1 | 10 | 2 | NULL |
| Towar 2 | 24 | 8 | 5 |
| Towar 3 | NULL | 7 | 19 |
+-----------+-----------+-----------+-----------+
Powiem szczerze, że utknąłem straszliwie. Jak się za to zabrać?