[英]MS Access 2007: Using SQL to Transpose rows to columns
SQL新手在这里。 我有以下表格设置(我为格式不正确而道歉):
周期ID .... UBCI .... chemo_cycle .... csf .... rsn_no_csf
57 ............. 18001 ... 1 ...................... N ....... N
58 ............. 18001 ... 2 ...................... N ....... N
59 ............. 22002 ... 1 ...................... Y ........空值
我想将其转换为以下格式:
UBCI .... chemo_cycle1 .... chemo_cycle2 .... csf1 .... csf2 .... rsn_no_csf1 .... rsn_no_csf2
18001 ... 1 ......................... 2 ................... ...... N ........ N ........ N ..................... N
22002 ... 1 ..................................空... ... Y ........ null ..... null ......... null
每个UBCI最多可以有26个chemo_cycles。 我尝试了其他一些建议,但对SQL不够熟悉,无法找出一些更详细的细节。 同样,对格式表示歉意。 任何帮助,将不胜感激。
谢谢!
-奥马尔
我可以看到在Access中方便地执行此操作的唯一方法是使用四个查询。 我认为您不能将交叉表查询用作子查询,因此:
查询1:抄送
TRANSFORM First(TableQ.chemo_cycle) AS FirstOfchemo_cycle
SELECT TableQ.UBCI
FROM TableQ
GROUP BY TableQ.UBCI
PIVOT "CC " & [chemo_cycle];
查询2:csf
TRANSFORM First(TableQ.csf) AS FirstOfcsf
SELECT TableQ.UBCI
FROM TableQ
GROUP BY TableQ.UBCI
PIVOT "csf " & [chemo_cycle];
查询3:rsn
TRANSFORM First(TableQ.rsn_no_csf) AS FirstOfrsn_no_csf
SELECT TableQ.UBCI
FROM TableQ
GROUP BY TableQ.UBCI
PIVOT "rsn " & [chemo_cycle];
最终查询:[cc 1]到[cc 26]列将显示在设计窗口中,并且可以添加,在此用<...>表示
SELECT CC.UBCI,
CC.[CC 1],
CC.[CC 2],
<...>
csf.[csf 1],
csf.[csf 2],
<...>
rsn.[rsn 1],
rsn.[rsn 2]
<...>
FROM (CC INNER JOIN csf
ON CC.UBCI = csf.UBCI)
INNER JOIN rsn
ON csf.UBCI = rsn.UBCI;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.