【发布时间】:2011-07-09 21:54:39
【问题描述】:
我想旋转并加入以从 3 个表中进行选择
表 1:INT、VARCHAR、FLOAT
ID Name value
---------------------------
1 a1 32116580
2 a2 50785384
3 a3 54327508
4 a4 61030844
表 2:INT、VARCHAR、FLOAT
ID Name value
---------------------------
1 x11 61326085092
2 x12 80368184260
3 x13 83023398776
4 x14 91144307692
5 x22 95486535484
6 x23 90357090612
7 x24 100588807668
8 x33 707811916752
9 x34 93128452928
10 x44 84566653668
表 3:INT、VARCHAR、FLOAT
ID Name value
---------------------------
1 q1 61326085092
2 q2 95486535484
3 q3 707811916752
4 q4 84566653668
输出表:
column1 column2 column3 column4
--------------------------------------------------------------------------
a1*a1/(q1+q1+x11) a1*a2/(q1+q2+x12) a1*a3/(q1+q3+x13) a1*a4/(q1+q4+x14)
null a2*a2/(q2+q2+x22) a2*a3/(q2+q3+x23) a2*a4/(q2+q4+x24)
null null a3*a3/(q3+q3+x339 a3*a4/(q3+q4+x34)
null null null a4*a4/(q4+q4+x44)
(我将 3 个不同表格的列的“名称”而不是数字)
- 如何做到这一点?
- 我想我必须做两个支点?和 取消透视?...
好了不知道怎么完成吧..
SELECT *
FROM (
SELECT
t1.a1,
t1.a2,
t2.x,
t3.q
FROM table1 t1
INNER JOIN table2 t2
ON t1.id = t2.id
...
) Output
PIVOT (
name IN (
...
PIVOT(name ... )
)
) PivotTable
更新 以前我有*的我已经改成除法和求和,*的只是一个例子,
【问题讨论】:
-
这个网站可以帮助你吗? kodyaz.com/articles/…
-
这是固定列输出?在添加行时不添加列?
-
好吧,输出是一个对称矩阵,当我们添加一行时,我们可以添加一列...
-
您是否追求*系列的准确结果?鉴于您的样本,这些数字是天文数字,不适合任何 SQL Server 数据类型
-
嗯,实际上它们可以是它们的总和
标签: sql sql-server tsql sql-server-2008