我在SQL Server 2008中的表格式如下(簡化格式):SQL - 樞軸/ Unpivot?
Date Miles Cost
我想得到這樣
Previous Week Current Week Variance Miles Cost
結果我怎樣才能做到這一點?我是否需要pivot/unpivot或者什麼是實現這個目標的最簡單和最有效的方法。謝謝。
我在SQL Server 2008中的表格式如下(簡化格式):SQL - 樞軸/ Unpivot?
Date Miles Cost
我想得到這樣
Previous Week Current Week Variance Miles Cost
結果我怎樣才能做到這一點?我是否需要pivot/unpivot或者什麼是實現這個目標的最簡單和最有效的方法。謝謝。
SELECT 'Miles' AS Type, SUM(CASE WHEN date = lastweek THEN miles ELSE 0 END) as lastweek
, SUM(CASE WHEN date = thisweek THEN miles ELSE 0 END) as thisweek
SUM(CASE WHEN date = lastweek THEN miles ELSE 0 END) - SUM(CASE WHEN date = thisweek THEN miles ELSE 0 END) as variance
FROM yourtable
UNION
SELECT 'Cost' AS Type, SUM(CASE WHEN date = lastweek THEN cost ELSE 0 END) as lastweek
, SUM(CASE WHEN date = thisweek THEN cost ELSE 0 END) as thisweek
SUM(CASE WHEN date = lastweek THEN cost ELSE 0 END) - SUM(CASE WHEN date = thisweek THEN cost ELSE 0 END) as variance
FROM yourtable
這是不是100%正確,但語法應該是正確的,應該讓你很接近好像你正在尋找
什麼不喜歡你需要一個支點爲此不惜一切。 – Kermit 2013-02-18 22:16:23
那我該如何實現呢?寧願有一個更簡單的SQL沒有多個聯合和聯合 – devSuper 2013-02-18 22:18:28