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ů: 116

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ů: 3,467

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.


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

Offline

Zápatí