小資料取整

2021-05-09 16:01:02 字數 2207 閱讀 3622

我有資料如下

id    typeid    num

0001    01      10.20

0001    02      10.40

0001    03      10.40

0002    01      20.00

0002    02      10.00

0003    03      20.50

0003    04      10.50

如何判斷將每個id 有小資料取整,要求是typeid最大的餘數全部彙總到此資料,要求結果如下

id    typeid    num

0001    01      10.00

0001    02      10.00

0001    03      11.00

0002    01      20.00

0002    02      10.00

0003    03      20.00

0003    04      11.00 

--方法

--ken wong

--測試資料

create

table

tb (id

varchar(4

),typeid

varchar(2

),num

dec(4,

2))insert

into

tbselect

'0001',

'01',

10.20

union

allselect

'0001',

'02',

10.40

union

allselect

'0001',

'03',

10.40

union

allselect

'0002',

'01',

20.00

union

allselect

'0002',

'02',

10.00

union

allselect

'0003',

'03',

20.50

union

allselect

'0003',

'04',

10.50

--執行

update

tb set

num

=case

when

typeid =(

select

max(typeid)

from

tb where

t.id

=id)

then

cast

(cast

(tb.num

asint

) as

dec(4,

2))

+t.餘數

else

cast

(cast

(tb.num

asint

) as

dec(4,

2))

endfrom

tb ,(

select

id,sum

(num

-cast

(cast

(num

asint

) as

dec(4,

2)))

as餘數

from

tb group

byid) t

where

tb.id

=t.id

--and typeid = (select max(typeid) from tb where t.id = id)

select

*from

tbdrop

table

tb--

結果0001

0110.00

0001

0210.00

0001

0311.00

0002

0120.00

0002

0210.00

0003

0320.00

0003

0411.00

c 小數取整

向上取整 math.ceiling 1 1 math.ceiling 1.1 2 math.ceiling 1.5 2 向下取整 math.float 1 1 math.float 1.1 1 math.float 1.5 1 c 取整函式例項應用詳解 c 取整函式的相關使用是我們在實際開發應用中經...

小數取整的方式

static double ceil double a 天花板函式,返回大於等於a的最小整數 但是以浮點數形式儲存 static double floor double a 地板函式,返回小於等於a的最大整數 但是以浮點數形式儲存 static double rint double a 四捨五入函式...

js中小數取整

以前我習慣性使用parseint做取整,後來發現乙個問題,對科學計數法不適用 js取整的方法 1.parseint parseint把小數轉化成整數是從要取整數據的左邊讀取,遇到非數字結束,保留前面已讀到的數字。當我們遇到科學計數法,使用parse取值可能是錯誤的 大部分來說是錯誤的 2.math ...