我正在寻求在SELECT查询中进行Week On Week比较。
基本代码将选择最左侧列中的不同区域,然后是以下代码:
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 :(得分: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不“实例化”子查询。