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!
Editoval prokopvaclav (1. 10. 2013 13:27:27)