資料表:
標籤表:標籤名稱,刪除狀態等
工作表:建立人,工作內容,審批人,審批狀態,審批時間,工作時長,刪除狀態等
使用者表:使用者姓名、登入賬號、刪除狀態等
關係:
標籤:工作 = 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...