我有兩個臨時表,它們爲應用程序提供了特定的作業運行時間。我想報告每個月的平均工作時間。然後注意差異。SQL查詢 - 查找百分比改進或兩個表值之間的百分比下降
構建臨時表的第一個查詢將輸出第一個月的平均作業時間,第二個臨時表包含第二個月的平均作業時間。
我想比較每項工作的百分比差異,測量第二個月與第一個月之間的差異。
下面是一個例子查詢建立兩個臨時表:一月的工作時序
CREATE TABLE #JobTimings_JAN(jobtime int, PRCSINSTANCE int ,
PRCSNAME char (30), PRCSTYPE char (30), RUNSTATUS char (30),
OPRID char (30), RUNCNTLID char (30), BEGINDTTM char (30) ,
ENDDTTM char (30))--, #Executions char (10))
;
INSERT INTO #JobTimings_OLDSERV (jobtime, PRCSINSTANCE,
PRCSNAME , PRCSTYPE, RUNSTATUS, OPRID, RUNCNTLID, BEGINDTTM, ENDDTTM)
SELECT DATEDIFF(ss,BEGINDTTM,ENDDTTM) AS jobtime,
PRCSINSTANCE, PRCSNAME, PRCSTYPE, RUNSTATUS, OPRID,
RUNCNTLID, BEGINDTTM, ENDDTTM
FROM PSPRCSRQST WHERE BEGINDTTM BETWEEN '2011-12-04 00:00:00.000'
AND '2011-12-17 23:59:09.837'
ORDER BY BEGINDTTM
由於
--temp表二月份的工作時序
CREATE TABLE #JobTimings_FEB(jobtime int, PRCSINSTANCE int ,
PRCSNAME char (30), PRCSTYPE char (30), RUNSTATUS char (30),
OPRID char (30), RUNCNTLID char (30), BEGINDTTM char (30) ,
ENDDTTM char (30))--, #Executions char (10))
;
INSERT INTO #JobTimings_NEWSERV (jobtime, PRCSINSTANCE,
PRCSNAME , PRCSTYPE, RUNSTATUS, OPRID, RUNCNTLID, BEGINDTTM, ENDDTTM)
SELECT DATEDIFF(ss,BEGINDTTM,ENDDTTM) AS jobtime,
PRCSINSTANCE, PRCSNAME, PRCSTYPE, RUNSTATUS, OPRID,
RUNCNTLID, BEGINDTTM, ENDDTTM
FROM PSPRCSRQST WHERE BEGINDTTM BETWEEN '2012-02-01 00:00:00.000'
AND '2012-02-28 23:59:09.837'
ORDER BY BEGINDTTM
--temp表如上所述,我想在兩個月之間的每個工作查詢中查找百分比差異。
有你看着LEAD和LAG功能? – Randy
您使用的是哪個版本的SQL Server?它可能會影響答案。 – HABO
尚未使用LEAD或LAG函數。使用sql 2000服務器 – user1133448