sql >> Databáze >  >> RDS >> Sqlserver

SQL Server:Desetinná přesnost/měřítko dávají podivné výsledky

dokumentace je trochu neúplné, pokud jde o kouzlo hodnoty 6 a kdy použít max funkce, ale zde je tabulka mých zjištění na základě této dokumentace.

Jak se říká, vzorce pro dělení jsou:

A jak jste sami zdůraznili, máme poznámku pod čarou:

Takže tady je to, co jsem vytvořil ve své tabulce:

p1 s1 p2 s2 prInit srInit prOver prAdjusted srAdjusted
38 16 38 16 93     55     55     38         6
28 16 28 16 73     45     35     38         10
29 16 29 16 75     46     37     38         9

Takže používám pr a sr k označení přesnosti a rozsahu výsledku. prInit a srInit vzorce jsou přesně ty forumlas z dokumentace. Jak vidíme, ve všech 3 případech je přesnost výsledku mnohem větší než 38 a tak platí poznámka pod čarou. prOver je jen max(0,prInit - 38) - o kolik musíme upravit přesnost, pokud platí poznámka pod čarou. prUpraveno je pouze prInit - prOver . Ve všech třech případech vidíme, že konečná přesnost výsledku je 38 .

Pokud použiji stejné faktor úprav na stupnici, pak bych získal výsledky 0 , 10 a 9 . Ale vidíme, že váš výsledek pro (38,16) případ má měřítko 6 . Takže věřím, že tam je max(6,... část dokumentace skutečně platí. Takže můj konečný vzorec pro srAdjusted je max(6,srInit-prOver) a teď můj poslední Upraveno zdá se, že hodnoty odpovídají vašim výsledkům.

A samozřejmě, pokud si prohlédneme dokumentaci pro desítkové , vidíme, že výchozí přesnost a měřítko, pokud je neurčíte, jsou (18,0) , takže zde je řádek, kdy jste nezadali přesnost a měřítko:

p1 s1 p2 s2 prInit srInit prOver prAdjusted srAdjusted
18 0  18 0  37     19     0      37         19



  1. Nevýhody ukládání obrázků do databáze?

  2. Jak migrovat tabulky z mé základní aplikace asp.net na linuxu

  3. Mám použít ON DELETE CASCADE, :dependent => :destroy, nebo obojí?

  4. Příklad dotazu SQL Server Linked Server