Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 3
Hej Mirki i Węgierki z tagu #sql #bazydanych

Pobieram z systemu źródłowego tabelę z historią popytu części w formacie:
NumerCzesci|Rok|M01|M02|M03|M04|(itd.)

M to oczywiście miesiąc roku, czyli dwanaście takich kolumn (x8 typów popytu). Chcę to sobie przerobić na wiersze i o ile samo unpivotowanie to nie problem, tak zastanawiam się jaką tabelę docelową stworzyć. Czy lepszy będzie format:
NumerCzesci|Rok|Miesiąc|Popyt

Czy lepiej:
NumerCzesci|PierwszyDzienMiesiaca|OstatniDzienMiesiaca|Popyt

Ktoś ma doświadczenie z takimi tabelami i może podpowiedzieć jaka forma będzie lepsza? ( ͡ ͜ʖ ͡)
  • 5
@DarkAlchemy: Ostatni dzień miesiąca nie ma specjalnego sensu, bo jest to stała, i w nowoczesnej bazie danych masz tą informację za darmo*

* Chyba, że jakieś dziwne cyrki się tam odpierdzielają, i np. za ostatni dzień grudnia jest ustalany 24, bo potem jest zamknięcie czy inne cuda na kiju.
via Wykop Mobilny (Android)
  • 0
@GaiusBaltar: w sumie masz rację, ale aktualnie jestem ograniczony do MS Server 2008 i tam jeszcze funkcja EOMONTH nie istnieje, ale niedługo będzie migracja chyba na 2017 więc spoko, wtedy po prostu zrobię drop kolumny.
Tylko teraz tracę na indelsach, bo albo muszę dokładnie określać datę popytu żeby dostać konkretny miesiąc roku albo robię konwersję na rok i miesiąc i indeksy już nie są takie fajne (spodziewam się kilkunastu milionów wierszy)
@DarkAlchemy: robisz swoja funkcje proste jak drut: wybierasz biezacy rok, biezacy miesiac, jako dzien wpisujesz 1, potem odejmujesz od tego 1 i dostajesz maksymalny dzien poprzedniego miesiaca