select不同的值一列到多列

我有以下数据:第1列与许多类别和第2列与每个类别的值。 我需要转换或透视这些信息,以显示跨多列的类别组的每个值。

col1 col2 ---------------- 1 a 2 b 2 c 2 d 3 e 3 f 4 g 4 h 

而需要这个结果:

 col1 col2 col3 col4 col5 col6 ----------------------------------------------- 1 a 2 bcd 3 ef 4 gh 

每tb1计数(第2列)组(第1列)不超过7个值。 来自tb1第2列的所有值是不同的,大约+50logging。

你想旋转你的表格,但是你的表格当前不包含你想旋转的字段(“col1”,“col2”,“col3”等等)。 您需要一个由col1分区的行号。 Jet数据库不提供ROW_NUMBER函数,所以您必须通过将表join自身来伪造它:

 select t1.col1, t1.col2, count(*) as row_num from [Sheet1$] t1 inner join [Sheet1$] t2 on t2.col1 = t1.col1 and t2.col2 <= t1.col2 group by t1.col1, t1.col2 

现在你可以在row_num

 transform Min(x.col2) select x.col1 from( select t1.col1, t1.col2, count(*) as row_num from [Sheet1$] t1 inner join [Sheet1$] t2 on t2.col1 = t1.col1 and t2.col2 <= t1.col2 group by t1.col1, t1.col2 ) x group by x.col1 pivot x.row_num