目前只发现一种
实现方法是 先更具条件 ,分组查询出所有数据 存放到临时表中,
然再从临时表中 读书具体 sql语句如下:
读出数据插入临时表:
CREATE TABLE #T (
T_ID INT IDENTITY(1,1) PRIMARY KEY,
WPROJ_ID INTEGER,
PROJ_NAME NVARCHAR(255),
WRES_ID INTEGER,
RES_NAME NVARCHAR(255),
WASSN_ID INTEGER,
TASK_NAME NVARCHAR(255),
ASSN_ACT_WORK_VAR DECIMAL,
ASSN_BEFORE_ACT_WORK DECIMAL,
ASSN_ACT_WORK DECIMAL,
ASSN_WORK DECIMAL,
TASK_UID_SUMMARY INTEGER )
INSERT INTO #T SELECT
WPROJ_ID,PROJ_NAME,WRES_ID,RES_NAME,WASSN_ID ,TASK_NAME,
SUM(ASSN_WORK_VAR)/60000 AS'ASSN_ACT_WORK_VAR' ,
MIN(ASSN_ACT_BEFORE_WORK)/60000 AS'ASSN_BEFORE_ACT_WORK' ,
MAX(ASSN_ACT_WORK)/60000 AS'ASSN_ACT_WORK',
MAX(ASSN_WORK)/60000AS'ASSN_WORK',
TASK_UID_SUMMARY
FROM
MSP_TRANSACTIONS_UPDATE
WHERE
WTRANS_ACTION IN(1,4) AND WASSN_DELETED_IN_PROJ=0
GROUP BY WPROJ_ID,PROJ_NAME,WRES_ID,RES_NAME,WASSN_ID, TASK_NAME,TASK_UID_SUMMARY
从临时表 分页查询:
SELECT TOP 15 WPROJ_ID,PROJ_NAME,WRES_ID,RES_NAME,WASSN_ID ,TASK_NAME,
ASSN_ACT_WORK_VAR,ASSN_BEFORE_ACT_WORK ,ASSN_ACT_WORK,ASSN_WORK,TASK_UID_SUMMARY
FROM #T
WHERE
T_ID NOT IN( SELECT TOP 30 T_ID FROM #T )