Hibernate統計 求和寫法

2021-10-21 20:44:38 字數 4503 閱讀 6055

資料表

標籤表:標籤名稱,刪除狀態等

工作表:建立人,工作內容,審批人,審批狀態,審批時間,工作時長,刪除狀態等

使用者表:使用者姓名、登入賬號、刪除狀態等

關係

標籤:工作 = 1:n

使用者:工作 = 1:n

**如下:

@query

(value =++

"where 1 = 1 "++

"and (u.status = :status) "++

+"and (t.deleted = false ) "

+"and (t.status = '審批通過') "+)

list

(@param

("startdate"

) instant startdate,

@param

("enddate"

) instant enddate,

@param

("status"

) userstatustype status)

;

解析:where條件中,審批人或者審批時間不能為空,審批人所對映的使用者不能為已刪除的使用者,工作不能為已刪除的工作,而且狀態必須為審批通過,最後通過審批人進行分組,得到結果。

**如下:

@query

(value =

"select sum(t.manhour) as hoursum,u.username as username from routinework t "

+"left join sysuser u on u.logincode = t.createdby "

+"where 1 = 1 "++

"and (u.status = :status) "++

+"and (t.deleted = false) "

+"and (t.status = '審批通過') "

+"group by t.createdby"

)list

workmanhourtotalbytime

(@param

("startdate"

) instant startdate,

@param

("enddate"

) instant enddate,

@param

("status"

) userstatustype status)

;

解析:與上面乙個條件大致相同,求和的工時需要在**中再進行四捨五入才能用。

四捨五入**:

/**

* double資料:保留小數點後bit位,四捨五入

* @param d

* @param bit

* @return

*/public

static

double

doublebitup

(double d,

int bit)

double pow = math.

pow(

10, bit)

;return

(double

)math.

round

(d*pow)

/pow;

}

**如下:

@query

(value =

"select count(t) as count,u.username as username from routinework t "

+"left join sysuser u on u.logincode = t.createdby "

+"where 1 = 1 "++

"and (u.status = :status) "++

+"and (t.deleted = false) "

+"and (t.status = '審批通過') "

+"group by t.createdby"

)list

worktasknumbertotalbytime

(@param

("startdate"

) instant startdate,

@param

("enddate"

) instant enddate,

@param

("status"

) userstatustype status)

;

**如下:

@query

(value =

"select sum(work.manhour) as manhours,lable.name as lablename from routinework work "

+"left join work.routinelabels lable on lable.deleted = false "

+"where 1 = 1 "++

++"and (work.deleted = false) "

+"and (work.status = '審批通過') "

+"group by lable.id"

)list

worktypetotalbytimeandmanhour

(@param

("startdate"

) instant startdate,

@param

("enddate"

) instant enddate)

;

@query

(value =

"select sum(work.manhour) as manhours from routinework work "

+"left join work.routinelabels lable on lable.deleted = false "

+"where 1 = 1 "++

++"and (work.deleted = false) "

+"and (work.status = '審批通過') "

)double summanhour

(@param

("startdate"

) instant startdate,

@param

("enddate"

) instant enddate)

;

**如下:

@query

(value =

"select count(work) as tasknos,lable.name as lablename from routinework work "

+"left join work.routinelabels lable on lable.deleted = false "

+"where 1 = 1 "++

++"and (work.deleted = false) "

+"and (work.status = '審批通過') "

+"group by lable.id"

)list

worktypetotalbytimeandtaskno

(@param

("startdate"

) instant startdate,

@param

("enddate"

) instant enddate)

;

@query

(value =

"select count(work) as tasknos from routinework work "

+"left join work.routinelabels lable on lable.deleted = false "

+"where 1 = 1 "++

++"and (work.deleted = false) "

+"and (work.status = '審批通過') "

)long sumtasks

(@param

("startdate"

) instant startdate,

@param

("enddate"

) instant enddate)

;

/**

* @param startdate

* @param enddate

*/public

void

inittimeifnull

(instant startdate,instant enddate)

if(enddate == null)

}

統計素數並求和

本題要求統計給定整數m和n區間內素數的個數並對它們求和。輸入格式 輸入在一行中給出兩個正整數m和n 1 m n 500 輸出格式 在一行中順序輸出m和n區間內素數的個數以及它們的和,數字間以空格分隔。輸入樣例 10 31輸出樣例 7 143思路 素數判斷函式,判斷到n的平方根即可停止。include...

Hibernate自定義SQL寫法

完全是給自己用的,怕以後忘了 listparams new arraylist stringbuilder strbuilder new stringbuilder params.add cond.getprotocolid list objects execsqlquery strbuilder....

awk 分組求和與統計

一.分組求和 1.對第乙個進行分組,對第二列的資料進行累加 awk f end srcfile outfile 分組一般都是用x 2 x 3 的方式來實現的,其中x 2 中的 2為要分的組,當然可以多個分組,x 3 為要處理的值 例如 1 以第五列分組,求第四列和 root localhost wm...