透过具有预定义标题的表格

时间:2017-04-21 07:26:53

标签: sql ms-access pivot transform

function findDepth(){
	return  Math.max.apply(null, $('ul, ol').map((i,l)=> $(l).find('ul, ol').length)) + 1;
}

console.log(findDepth());

我有这个输入,我想把它转换成这个。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ul>
  <li>Item:
     <ol>
       <li>Point:
         <div>
           <ul>
             <li>elem1</li>
           </ul>
         </div>
       </li>
     </ol>
  </li>
  <li>elem2</li>
</ul>
<ul>
  <li>simple list1</li>
</ul>
<ul>
</ul>

我尝试过转轴和转换。但不会去任何地方。

ID | NAME | Description
A    A      Value1
A    A      Value2
B    B      Value1
C    C      Value1
C    C      Value2
C    C      Value3
D    D      Value1
D    D      Value2
D    D      Value3
D    D      Value4
D    D      Value5
D    D      Value6

任何帮助都会得到帮助。

1 个答案:

答案 0 :(得分:1)

名称是保留字。不应该使用保留字作为任何名称。

一种方法使用DCount()。该表将需要一个唯一的标识符字段 - autonumber应该为此服务。构建查询:

SELECT Table1.ID, Table1.Name, Table1.Description, Table1.NumID, 
DCount("*","Table1","ID='" & [ID] & "' AND NumID<" & [NumID])+1 AS GrpNum
FROM Table1
ORDER BY Table1.ID, Table1.NumID;

然后在CROSSTAB中使用该查询。

TRANSFORM First(Query3.Description) AS FirstOfDescription
SELECT Query3.ID, Query3.Name
FROM Query3
GROUP BY Query3.ID, Query3.Name
PIVOT Query3.GrpNum;

但是,域聚合函数在查询非常大的数据集时执行速度很慢。

VBA过程可以将记录写入到透视结构中的“临时”表(表是永久的,数据是临时的)。对于大型数据集,此代码可能比使用域聚合函数的查询执行得更快。

可以使用autonumber字段将文本文件导入“temp”表,然后运行建议的查询。