Autor Wątek: Zapytanie do bazy - zastawienie dokumentów po tygodniach.  (Przeczytany 1370 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline szczur3k

  • Nowy użytkownik
  • *
  • Wiadomości: 1
  • Reputacja +0/-0
  • Wersja programu: 1.5402.2.4303
Zapytanie do bazy - zastawienie dokumentów po tygodniach.
« dnia: Listopad 08, 2019, 12:13:18 »
Hej.

Potrzebuję zrobić zapytanie którego wynikiem będzie tabela w której znajdzie się ilość sprzedanych w danym tygodniu towarów. Póki co stworzyłem zapytanie:

SELECT T.tw_nazwa Nazwa, SUM(V.ob_IloscMag * V.ob_Znak) Ostatni FROM subiekt.dbo.vwZstSprzWgKhnt V
LEFT JOIN subiekt.dbo.tw__Towar T ON T.tw_id = ob_TowId
WHERE
dok_Status != 2 AND
subiekt.dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp) IN (131072, 131074, 131075, 131076, 131077, 262144, 393216, 393217, 393218, 1376256, 1376257, 1376258, 1376259, 917504, 917505, 4063232) AND
V.dok_MagId IN (1) AND
ob_TowRodzaj & 15 > 0 AND
datepart(wk, dok_DataWyst) = datepart(wk, GETDATE()) - 1
GROUP BY T.tw_Nazwa

I OK, zapytanie wyświetla nazwę oraz ilość sprzedanych w ubiegłym tygodniu towarów, przykładowo:

+---------+---------+
| Nazwa   | Ostatni |
+---------+---------+
| Towar 1 |   10    |
| Towar 2 |    2    |
| Towar 3 |   24    |
| Towar 4 |    8    |
| Towar 5 |    0    |
+-------------------+


Problem polega na tym, że potrzebuję tabelę z takim wynikiem:

+---------+------------+------------+------------+------------+
| Nazwa   | Tydzień -1 | Tydzień -2 | Tydzień -3 | Tydzień -4 |
+---------+------------+------------+------------+------------+
| Towar 1 |      10    |       5    |       9    |      15    |
| Towar 2 |       2    |      21    |      13    |      11    |
| Towar 3 |      24    |       0    |      24    |       3    |
| Towar 4 |       8    |      16    |       1    |       7    |
| Towar 5 |       0    |       8    |       0    |      10    |
+----------------------+------------+------------+------------+

Powiem szczerze, że nie mam pojęcia jak się za to zabrać :( Kombinowałem coś z podzapytaniami, ale bez większych sukcesów.

Offline Paweł Szczygiel

  • Aktywny użytkownik
  • ***
  • Wiadomości: 169
  • Reputacja +4/-0
Odp: Zapytanie do bazy - zastawienie dokumentów po tygodniach.
« Odpowiedź #1 dnia: Listopad 08, 2019, 14:14:47 »
Proszę zastosować PIVOTa w zapytaniu.
Paweł Szczygieł

Offline tomaszf

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 523
  • Reputacja +12/-0
  • Wersja programu: Subiekt GT 1.66
Zapytanie do bazy - zastawienie dokumentów po tygodniach.
« Odpowiedź #2 dnia: Listopad 09, 2019, 10:30:01 »
Jeżeli zawsze będą to 4 tydognie wstecz, można to zrobić bez pivota (mniej wydajnie, ale można :)).

Wysłane z mojego CLT-L29 przy użyciu Tapatalka


Forum Użytkownikow Subiekt GT

Zapytanie do bazy - zastawienie dokumentów po tygodniach.
« Odpowiedź #2 dnia: Listopad 09, 2019, 10:30:01 »