IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: agregace financi projektu

V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15.1.2020 8:47

Mam seznam projektu. Kazdy projekt ma tabulku financi. Finance jsou rozdeleny podle roku, podle typu zdroje a podle typu oddeleni. Potrebuji nad tim udelat nejake agregace. Zatim mi to prilis neupresnili a rozmyslim si, jak asi na to.
Asi nejlepsi reseni mi zatim vychazi zobrazit jednu velkou tabulku finance jako mam u projektu, ale poscitat to ze vsech projektu. A to si zatim jeste neumim moc predstavit ten sql dotaz s grupovanim. V databazi to mam zapsane jen jako cisla x, y, value. Takze, jestli by jste nekdo meli nejaky tip, priklad dotazu.

Kazdy projekt muze zacinat treba v roce 2017 a koncit 2019. Jiny jen 2020.
Kazdy projekt ma celkove finance a rozdeleni na jednotlive soucasti.
Ukazka tabulky pro projekt (nemam zatim ani priklad s castkami, tak jsou vsude nuly)

        Celkem  2019    2020    2021    2022
Schválený rozpočet SU        0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
z toho FVP      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
z toho FPF      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
Dotace SU       0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
z toho FVP      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
z toho FPF      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
Spolufinancování SU   0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
z toho FVP      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
z toho FPF      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
Investice SU    0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
z toho FVP      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč
z toho FPF      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč      0,00,- Kč

Pozadavky:
s financemi máme představu takovou, že se musí dát agregovat za jednotlivé dotační tituly, za jednotlivé součásti,
za jednotlivé roky apod...
typicky např.:

kvestorku bude zajímat, kolik bude činit celkový objem (tedy suma) investičních prostředků z projektů na roky
20, 21, 22 za celou SU a za jednotlivé součásti apod.

tajemníky bude zase zajímat, kolik prostředků musí rezervovat na spolufinancování projektů na dané součásti
na jednotlivé roky 20, 21, 22 apod.


Zatim si myslim, ze by mohlo jit grupovani podle obou hodnot a ze by to melo dat jednu obri tabulku, ktera bude vypadat jako tahle, jen tam bude mit vic roku.
GROUP BY x, y (x je treba FPF, y je Schválený rozpočet SU; nebo je x treba celkem)
Takze, kdyz bych to takhle zgrupoval, tak si myslim, ze by to mohlo jit. Jeste z toho ziskat nejak seznam oddeleni (tech muze byt 6, nejen FPF a FVP) a tak.
No, zatim se toho desim, teprve zacinam uvazovat nad tim, jak na to :)

Zkusil jsem: .

Chci docílit: .

 
Odpovědět
15.1.2020 8:47
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15.1.2020 8:57

Pridam jeste strukturu tabulky. Mozna jsem to spatne popsal a je tam x,y,z. A nebo budu muset tabulku predelat, aby bylo :) A kdyz ted nad tim vic uvazuji, asi to bude nutne pro to grupovani. Poradi nestaci. To tam mam spis pro snadnejsi vypis. A pak to docela pracne generuji a doplnuji tam 'Spolufinancování SU' . Coz je asi spatne.

CREATE TABLE IF NOT EXISTS `s_finance` (
  `idfinance` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `idform` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `iduser` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `poradi` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `rok` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `idsoucast` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `castka` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `logdate` date NOT NULL DEFAULT '0000-00-00',
  `loguser` int(10) UNSIGNED NOT NULL DEFAULT '0',
  PRIMARY KEY (`idfinance`),
  KEY `idform` (`idform`),
  KEY `iduser` (`iduser`),
  KEY `poradi` (`poradi`),
  KEY `rok` (`rok`),
  KEY `idsoucast` (`idsoucast`),
  KEY `logdate` (`logdate`),
  KEY `loguser` (`loguser`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
 
Nahoru Odpovědět
15.1.2020 8:57
Avatar
Jan Stodůlka
Tvůrce
Avatar
Jan Stodůlka:8.4.2020 16:08

Jak jsem to pochopil, tak by to problém být neměl. S joinuješ tabulky, přidáš grupování a je to.
Začal bych tím, že si přesně nakreslíš co v jaké obrazovce budeš potřebovat a podle čeho budeš chtít grupovat / filtrovat.

Problém by mohlo být zobrazení podle projektů v jednotlivých letech. Jak jsi psal, projekty začínají a končí různě. Budeš tak mít v datech díry. To můžeš řešit již v db nebo až při výpise na obrazovku.
Záleží kdo data bude jak potřebovat.

Já to nedávno řešil, tak, že po načtení dat z DB jsem v aplikaci doplnil chybějící informace - jinak se mi to v grafu co jsem dělal zobrazovalo posunutě.

Nahoru Odpovědět
8.4.2020 16:08
Nechodím do hospody, protože doma programuji.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.