【发布时间】:2009-05-06 14:19:13
【问题描述】:
我有一个表,其中包含大约 30 列布尔标志,这些标志表示特定属性。我想将它们按频率排序作为记录集连同它们的列名一起返回,如下所示:
Attribute Count
attrib9 43
attrib13 27
attrib19 21
etc.
到目前为止,我的努力可以达到类似的效果,但我只能使用条件 SUM 获取列中的属性,如下所示:
SELECT SUM(IIF(a.attribIndex=-1,1,0)), SUM(IIF(a.attribWorkflow =-1,1,0))...
此外,对于所有 30 个 SUM/IIF,查询已经变得有点笨拙,并且在没有人工干预的情况下不会处理属性数量的任何变化。
属性列的前六个字符在表中相同(attrib)且唯一,是否可以在列名中使用通配符来选取所有适用的列?
另外,我可以对结果进行转置以给我一个排序的两列记录集吗?
我使用的是 Access 2003,查询最终将通过 Excel 中的 ADODB。
【问题讨论】: