在主表上执行类似Matrix的计算

时间:2011-06-14 01:43:50

标签: sql tsql

我有一个像

这样的主表

城市名称,月份,温度

A,一月,20
....
A,十二月,1个
B,一月,30 ....
Z,12月12日

我想生成一个像

这样的差异表

孵化城,jCity,月,DifferentTemperature
A,B,Jan,a.temperature-b.temperature
...
A,Z,Dec,a。温度z.temperature
.....

每一行都会循环显示主表中特定月份的其余行。

最好的方法是什么?你是怎么想出来解决这个问题的?

非常感谢!

1 个答案:

答案 0 :(得分:1)

听起来你正在寻找CROSS APPLY

这样的东西
SELECT
    M1.city AS iCity
,   M2.city AS jCity
,   M1.month
,   M1.temperature - M2.temperature AS final_temperature
FROM
    MASTER M1
    CROSS APPLY
    MASTER M2
    ON M2.month = M1.month