Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 16. 4. 2019 14:54:54

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 80

Funkce Group pro pole typu Datum

Mám tabulku, která obsajuje jedno pole "Datum" a jedno pole "Cislo" Potřebuji napsat dotaz, který určí součet polí "Cislo" podle toho, jak seskupí pole "Datum", tedy něco takového:

SELECT "Datum", SUM( "Cislo_1" ), COUNT( "Datum" ) FROM "Table1" GROUP BY "Datum"

Toto fubguje ale pouze v případě dvou stejných datumů. Jak ale postupovat, pokud chci seskupit např. podle celého měsíce, tedy vyřadit z porovnávání dny (nebo pro případ celého roku, tedy vyřadit v potovnávání dny i měsíce)

Díky za radu

Offline

#2 16. 4. 2019 16:23:51

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,901

Re: Funkce Group pro pole typu Datum

Jestli tomu dobře rozumím tak hledáte součet hodnot ze sloupce "číslo" podle datumů v určitém rozsahu. Například dní za určitý měsíc které se v databázi vyskytují. Jde tedy zřejmě o dotaz podobný se vzorcem SUMIF.
     Toto si nejprve udělejte jako klasický dotaz (nikoliv SQL). Zde máte možnost řetězit podmínky pomocí AND. V každé podmínce pod sebe uvedete jednotlivou podmínku. Takže například když budete chtít všechny součty ze dnů února postavíte první podmínku jako větší nežli 31.1. +(ROK) a do dalšího řádku zadáte menší nežli 1.3.ROK.
     Otestujte a když to bude fungovat otevřete dotaz jako SQL. Podle tohoto už snadněji sestrojíte správnou syntaxi pro jiné dotazy SQL.


     Jenom uvedu, že složitější úlohy je možné zpracovávat v sešitě Calcu. SQL je pro Base dost omezené a funguje prakticky jen SELECT. Tedy načítání z databáze. Ostatní příkazy jako REMOVE ap. nefungují vůbec, nebo s obtížemi přes makra.


     Něco se dá zajistit pomocí databázových funkcí sešitu DSUM; DCOUNT;..... ale je jich málo a při vykopírování databáze lze použít klasické vzorce jako SUMIF; SUMIFS; a podobně. Ale tyto originál databázové vzorce se umí připojit k databázi a vytáhnout do Calcu většinu potřebných dat. To znamená že i když vedeme databázi je zabudovaná možnost těžby přímo v Calcu.
     Tedy je možné, že motor Firebirdu umožňuje více nežli původní HSQLDB ale toto jsem do hloubky nezkoumal. Naivně jsem si myslel, že se lze připojit přímo na externí Firebird - a to nejde přímo ani za předpokladu, že se čte z hotové databáze (administrované originál Firebirdem). Samozřejmě Firebird je zabudován pouze do LibreOffice, takže se stále používá ještě také HSQLDB.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

Zápatí