Witam,
Poproszę Was o pomoc jak pogryźć temat :-).
Muszę dopracować zapytanie w SQL (SQL Serwer 2008).
Zapytanie SUMUJE rekordy wydań z magazynu z przesunięciem tygodni:
Indeks
Nazwa
SUM ILOŚĆ_BIEŻĄCY
0 T-1
0 T-2
0 T-3
0 T-4
UNION
Indeks
Nazwa
0 ILOŚĆ_BIEŻĄCY
0 SUMA T-1
0 T-2
0 T-3
0 T-4
UNION
Indeks
Nazwa
0 ILOŚĆ_BIEŻĄCY
0 T-1
0 SUMA T-2
0 T-3
0 T-4
(...) itd do końca z przesunięciem do T-4.
Następnie.
Sumuję następnie Wszystkie KOLUMNY aby "skasować" ZERA i wyrównać tabelę.
W wyniku tego mam ładną tabelę (w uproszczeniu):
Indeks Nazwa TB T-1 T-2 T-3 T-4
Numer tygodnia do sumowania tygodniowego pobieram z daty wydania z magazynu DD-MM-RRRR.
Ten numer tygodnia porównuję do obecnego numeru tygodnia (z daty obecnej).
- Sprawdzam numer bieżącego tygodnia.
i pokazuję dane sumując według tygodni:
Tydzień -4: Bieżący numer tygodnia -4
Tydzień -3: Bieżący numer tygodnia -3
Tydzień -2: Bieżący numer tygodnia -2
Tydzień -1: Bieżący numer tygodnia -1
Tydzień BIEŻĄCY: Bieżący numer tygodnia
Wszystko ładnie działa.
**
Ale nie mam koncepcji jak podejść do "Początku roku".**
DATA BIEŻĄCA zwraca - Tydzień 1/2017:
Tydzień -4: Bieżący numer tygodnia 49/2016
Tydzień -3: Bieżący numer tygodnia 50/2016
Tydzień -2: Bieżący numer tygodnia 51/2016
Tydzień -1: Bieżący numer tygodnia 52/2016
Tydzień BIEŻĄCY: Bieżący numer tygodnia 1/2017
Tutaj nie ma problemu: Mogę zadeklarować zmienną @MSC przypisując do niej:
T-1 to 52 rok 2016
T-2 to 51 rok 2016
T-3 to 50 rok 2016
T-4 to 49 rok 2016
Problem zaczyna się od "2" tygodnia gdzie mamy przeskok tygodni i roku.
DATA BIEŻĄCA zwraca - Tydzień 2/2017:
Tydzień -4: Bieżący numer tygodnia 41/2016
Tydzień -3: Bieżący numer tygodnia 51/2016
Tydzień -2: Bieżący numer tygodnia 52/2016
Tydzień -1: Bieżący numer tygodnia 2/2017
Tydzień BIEŻĄCY: Bieżący numer tygodnia 2/2017
DATA BIEŻĄCA zwraca - Tydzień 3/2017:
Tydzień -4: Bieżący numer tygodnia 51/2016
Tydzień -3: Bieżący numer tygodnia 52/2016
Tydzień -2: Bieżący numer tygodnia 1/2017
Tydzień -1: Bieżący numer tygodnia 2/2017
Tydzień BIEŻĄCY: Bieżący numer tygodnia 3/2017
(...) i tak dalej.
Problem się kończy w tygodniu 5 bo dla niego tydzień pierwszy jest bez problemu do pobrania piąty tydzień 5- tydzień 4 = tydzień 1.
Ma Ktoś z Was jakiś pomysł jak to zrobić?