Pri používaní databázy sa každý snaží navrhnúť tabuľku tak, aby automatické výpočty urobil tento modul sám. Môže ísť napríklad o výpočet DPH, percentuálneho podielu napríklad zmätkov pri výrobe, podielu reklamácií na celkový počet výrobkov a pod.
Definícia tabuľky pre sledovanie zmätkov a opráv
Na všetky (ale nielen takéto veci) môžete použiť tzv. pohľad nad tabuľkou. Pri jeho definovaní stačí, ak sa cez tlačidlo Pohled návrhu zap/vyp prepnete do režimu priameho zadania SQL príkazu a tam zadefinujete príslušné matematické operácie a funkcie. Pretože na internete sa dá zohnať viacero dobrých príručiek jazyka SQL, nebudeme sa tomuto popisu podrobnejšie venovať, ale ukážeme si iba jednoduchý príklad, pri ktorom spoznáte základný syntax SQL príkazu SELECT
, pretože potrebné úkony musíte zadefinovať v ňom.
Prepnutie do režimu priameho zadania SQL príkazu
Predpokladajme, že máte vytvorenú tabuľku "Tabulka1"
, v ktorej máte definované nasledovné údaje: identifikačné číslo ("ID"
), názov dodávateľa ("Dodávateľ"
), evidenčné číslo materiálu ("Č. materiálu"
), počet dodaných kusov ("KS"
), počet zmätkov ("Zmätky ks"
) a počet opravených kusov ("Opravy ks"
). Z týchto údajov chcete vypočítať percento zmätkov a percento opráv. Vytvoríte si nový pohľad, vyberiete tie údaje, ktoré nemusíte počítať (načo ich zbytočne písať, keď to za nás urobí OpenOffice.org), cez tlačidlo Pohled návrhu zap/vyp sa prepnete do režimu priameho zápisu SQL príkazu a tam zmodifikujete už zapísaný príkaz SELECT
nasledovným spôsobom:
Zadanie vzorcov do SQL príkazu
SELECT "ID", "Dátum", "Dodávateľ", "Č. materiálu", "KS", "Zmätky ks", "Opravy ks", 100 * "Zmätky ks" / "KS" AS "% zmätkov", 100 * "Opravy ks" / "KS" AS "% opráv" FROM "Tabulka1" AS "Tabulka1"
Definícia pohľadu po vložení vzorcov do SQL príkazu
Ako vidíte, priamo vo výbere je zadaný vzorec pre výpočet percenta zmätkov a opráv. Aby ste v pohľade nemali následne názov záhlavia tento vzorec, cez kľúčové slovo AS
ste tieto údaje zároveň pomenovali alternatívnymi („alias“) názvami, čiže vzorec pre výpočet zmätkov (100 * "Zmätky ks" / "KS"
) je nazvaný "% zmätkov"
a vzorec pre výpočet opráv (100 * "Opravy ks" / "KS"
) je nazvaný "% opráv"
. Pretože názvy obsahujú medzery, je potrebné ich uzavierať do úvodzoviek.
Zadanie vstupných údajov do tabuľky
Po zadaní príkazu sa cez tlačidlo Pohled návrhu zap/vyp prepnete nazad do štandardného režimu návrhu, kde uvidíte dva nové stĺpce s príslušnými výpočtami. Zadané vzorce uvidíte v prvom riadku (Pole
) a alternatívne názvy v riadku druhom (Alias
). Pravdaže, pokiaľ chcete, môžete teraz takto vypočítané údaje použiť pri definovaní nových a nových pohľadov, pričom sa na ne budete odvolávať práve cez „alias“ názvy.
Zobrazené percentuálne výsledky v definovanom pohľade
Teraz sa pozrime na to, ako dosiahnuť, aby sa percentuálny výsledok zobrazoval ako reálne číslo. Toto sa dá dosiahnuť viacerými spôsobmi. Pokiaľ ste pri definícii tabuľky zadefinovali údaje o kusoch ako reálne čísla (pravdaže, nemusíte tak urobiť buď pre všetky tieto údaje, stačí aj jeden z nich – v našom príklade by bol vhodný údaj "KS"
), potom OpenOffice.org výpočet automaticky urobí ako reálne číslo.
Príklad definovania celočíselných údajov
Zobrazené celočíselné percentuálne výsledky
Naopak, pokiaľ zadefinujete tieto údaje ako celočíselné, bude aj výsledok automaticky zaokrúhlený na celé číslo. To, akú definíciu použijete závisí od toho, aké výsledky chcete dosiahnuť. Čo však urobiť v tom prípade, ak potrebujete aj celočíselný aj neceločíselný výsledok, prípadne nemôžete definíciu v pôvodnej tabuľke už zmeniť? Je to jednoduché – vo vzorci v príkaze SELECT
nezadajte číslo 100 ako celé, ako ako reálne (pozor, desatinné miesto sa neoddeľuje čiarkou ale bodkou):
Zadefinovanie neceločíselných vzorcov do príkazu SELECT
SELECT "ID", "Dátum", "Dodávateľ", "Č. materiálu", "KS", "Zmätky ks", "Opravy ks", 100.00 * "Zmätky ks" / "KS" AS "% zmätkov", 100.00 * "Opravy ks" / "KS" AS "% opráv" FROM "Tabulka1" AS "Tabulka1"
V tomto prípade naozaj nezáleží na tom, ako máte vstupné údaje zadané, výsledok sa zobrazí ako číslo reálne.
Formátovanie buniek vo výstupnej zostave
Na záver ešte uveďme, že databáza je databáza a preto zobrazuje údaje tak, ako sú zadané a vypočítané. Pokiaľ požadujete, aby sa výsledok zobrazoval povedzme na dve desatinné miesta, potom buď použijete tabuľku ako zdroj údajov pre modul Calc, kde si môžete nastaviť ľubovoľné formátovanie, alebo si vygenerujete výstupnú zostavu, kde tak isto môžete previesť formátovanie číselných údajov rovnakým spôsobom, ako v module Calc.