本帖最後由 luckiejacky 於 2015-4-13 17:36 編輯
Thanks
仲有一條問題
如果Query中的 _4Months, _3Months 等想改做 03/2015, 02/2015, 01/2015, 12/2014
有咩方法?
THX
- USE RCS;
- select finalall.RespName,finalall._4Months , finalall._3Months, finalall._2Months, finalall._1Month,
- finalall._4Months + finalall._3Months + finalall._2Months + finalall._1Month AS total
- from
- (select final.RespName, final._4Months, final._3Months, final._2Months, final._1Month, final.union_order
- from
- (select r.RespName, count(four.ItemNo) AS _4Months,
- COUNT(three.ItemNo) AS _3Months, count(two.ItemNo) AS _2Months,
- count(one.ItemNo) AS _1Month, 0 AS union_order
- from
- IssueLog AS i
- INNER JOIN
- RespCat AS r
- ON i.RespCatID = r.RespCatID
- LEFT JOIN
- (select i.ItemNo
- from IssueLog AS i
- INNER JOIN
- RespCat AS r
- ON i.RespCatID = r.RespCatID
- where DATEDIFF(month, i.RespRaisedDate, GETDATE()) = 4
- group by i.ItemNo, r.RespName
- ) AS four
- ON i.ItemNo = four.ItemNo
- LEFT JOIN
- (select i.ItemNo
- from IssueLog AS i
- INNER JOIN
- RespCat AS r
- ON i.RespCatID = r.RespCatID
- where DATEDIFF(month, i.RespRaisedDate, GETDATE()) = 3
- group by i.ItemNo, r.RespName
- ) AS three
- ON i.ItemNo = three.ItemNo
- LEFT JOIN
- (select i.ItemNo
- from IssueLog AS i
- INNER JOIN
- RespCat AS r
- ON i.RespCatID = r.RespCatID
- where DATEDIFF(month, i.RespRaisedDate, GETDATE()) = 2
- group by i.ItemNo, r.RespName
- ) AS two
- ON i.ItemNo = two.ItemNo
- LEFT JOIN
- (select i.ItemNo
- from IssueLog AS i
- INNER JOIN
- RespCat AS r
- ON i.RespCatID = r.RespCatID
- where DATEDIFF(month, i.RespRaisedDate, GETDATE()) = 1
- group by i.ItemNo, r.RespName
- ) AS one
- ON i.ItemNo = one.ItemNo
- WHERE i.RespCatID != 1
- group by r.RespName
-
-
- UNION
- select 'Total' AS RespName, sum(gt._4Months) AS _4Months, sum(gt._3Months) AS _3Months, sum(gt._2Months) AS _2Months, sum(gt._1Month) AS _1Month, 1 AS union_order
- from
- (select r.RespName, count(four.ItemNo) AS _4Months,
- COUNT(three.ItemNo) AS _3Months, count(two.ItemNo) AS _2Months,
- count(one.ItemNo) AS _1Month, 0 AS union_order
- from
- IssueLog AS i
- INNER JOIN
- RespCat AS r
- ON i.RespCatID = r.RespCatID
- LEFT JOIN
- (select i.ItemNo
- from IssueLog AS i
- INNER JOIN
- RespCat AS r
- ON i.RespCatID = r.RespCatID
- where DATEDIFF(month, i.RespRaisedDate, GETDATE()) = 4
- group by i.ItemNo, r.RespName
- ) AS four
- ON i.ItemNo = four.ItemNo
- LEFT JOIN
- (select i.ItemNo
- from IssueLog AS i
- INNER JOIN
- RespCat AS r
- ON i.RespCatID = r.RespCatID
- where DATEDIFF(month, i.RespRaisedDate, GETDATE()) = 3
- group by i.ItemNo, r.RespName
- ) AS three
- ON i.ItemNo = three.ItemNo
- LEFT JOIN
- (select i.ItemNo
- from IssueLog AS i
- INNER JOIN
- RespCat AS r
- ON i.RespCatID = r.RespCatID
- where DATEDIFF(month, i.RespRaisedDate, GETDATE()) = 2
- group by i.ItemNo, r.RespName
- ) AS two
- ON i.ItemNo = two.ItemNo
- LEFT JOIN
- (select i.ItemNo
- from IssueLog AS i
- INNER JOIN
- RespCat AS r
- ON i.RespCatID = r.RespCatID
- where DATEDIFF(month, i.RespRaisedDate, GETDATE()) = 1
- group by i.ItemNo, r.RespName
- ) AS one
- ON i.ItemNo = one.ItemNo
- WHERE i.RespCatID != 1
- group by r.RespName) AS gt
-
-
-
- ) AS final
- ) AS finalall
-
- group by finalall.RespName, finalall._4Months, finalall._3Months, finalall._2Months, finalall._1Month, finalall.union_order
- order by finalall.union_order;
複製代碼 |