2013-06-23 48 views
1

我正在尋求在SELECT查詢中進行一週的周比較。SQL Server - 在SELECT查詢中將一列除以另一列

的基本代碼將在最左邊的列中選擇不同的區域,然後將以下代碼:

SELECT 
    (CASE WHEN TIMESTAMP >= GETDATE() -7 AND TIMESTAMP < GETDATE() 
      THEN ORDER_ID 
      ELSE NULL 
    END) AS THISWEEK 

SELECT 
    (CASE WHEN TIMESTAMP >= GETDATE() -14 AND TIMESTAMP < GETDATE() -7 
      THEN ORDER_ID 
      ELSE NULL 
    END) AS LASTWEEK 

我真的希望能有(THISWEEK/LASTWEEK) - 1(就像我會在Excel中)

這可能嗎?

+0

你想通過Order_ID分割Order_ID嗎?應該有一個計數? –

回答

2

這是你想要的嗎?

select (thisweek/lastweek) - 1 
from (SELECT (CASE WHEN TIMESTAMP >= GETDATE() -7 AND TIMESTAMP < GETDATE() 
        THEN ORDER_ID 
       END) AS THISWEEK, 
      (CASE WHEN TIMESTAMP >= GETDATE() -14 AND TIMESTAMP < GETDATE() -7 
        THEN ORDER_ID 
      END) AS LASTWEEK 
     from . . . 
    ) t 

它定義了子查詢中的變量,然後使用它們。請注意,這沒有任何性能損失; SQL Server不會「實例化」子查詢。

+0

這很可愛。謝謝Gordon – finngeraghty

相關問題