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

#1 Base » Base neumí počítat » 1. 10. 2013 13:25:20

prokopvaclav
Odpovědí: 7

Dobrý den,
snažím se již druhý den dát dohromady jednu sestavu v Base. Problém je v tom, že base neumí počítat (nebo to neumím já)... Mám podobný dotaz:


DATEDIFF( 'second', "Vykaz"."Cas_od", "Vykaz"."Cas_do" ) / 28800 AS "Pocet_dnu


Výsledek mi ukáže počet dnů naprosto špatně. Pokud však na konci dělím pouze 480 vyjde mi dotaz přesně (pokud následně na kalkulačcce vydělím ještě 60).


Stejný problém mám i u času - potřebuji zjistit počet hodin - pokud vydělím výsledek 3600 vyjde mi nesmysl, pokud pouze dělím 60, vše je v pořádku. Pokud v DATEDIFF použiji hour dostanu velmi nepřesný výsledek.


Nevíte kde je chyba? Formátováním sloupce to není, přijde mi, že base nějak sám zaokrouhluje jak se mu zachce.



SELECT
"Vykaz"."Cas_od", "Vykaz"."Cas_do", "Zakazka"."Kod", "Operace"."Nazev", "Vykaz"."Pocet_ks", "Operace"."Norma", "Operace"."Tarif", "Pracovnik"."Jmeno",


DATEDIFF( 'second', "Vykaz"."Cas_od", "Vykaz"."Cas_do" ) / "Operace"."Cas" AS "Mel_vyrobit",


( 3600 * "Vykaz"."Pocet_ks" ) / ( DATEDIFF( 'second', "Vykaz"."Cas_od", "Vykaz"."Cas_do" ) * "Operace"."Norma" ) AS "Efektivita",


( "Vykaz"."Pocet_ks" * "Operace"."Cas" ) / 3600 AS "Cas_dle_normy",


DATEDIFF( 'second', "Vykaz"."Cas_od", "Vykaz"."Cas_do" ) / 60 AS "Skutecny_cas",


DATEDIFF( 'second', "Vykaz"."Cas_od", "Vykaz"."Cas_do" ) / 28800 AS "Pocet_dnu"


FROM
"Vykaz", "Pracovnik", "Operace", "Zakazka"


WHERE
"Vykaz"."Id_pracovnika" = "Pracovnik"."Id" AND "Vykaz"."Id_operace" = "Operace"."CisloOperace" AND "Vykaz"."Id_zakazky" = "Zakazka"."Id"



Všem díky za pomoc!

Zápatí

Používáme FluxBB