在有人要求之前,是的,我已将此问题搜索到第n度,无法获得Access 2007语法中所需的结果。所有解决方案看起来都很合理,但它仍然存在语法错误。 MS SQL与本机SQL有不同的语法吗?
表TRXCODE TRXINFO
20141002 RES 9 [57]
20141002 TRM AWCORD01
20141002 MRC ddfhrhamwss
20141002 RES 1 [49]
20141002 TRM AWTERC01
20141002 MRC ftttyyxxdsj3
20141002 RES 1 [49]
20141002 TRM AWTERC01
20141002 MRC 5556jdjsjsjd
TABLE RES TRM MRC
20141002 9 [57] AWCORD01 ddfhrhamwss
20141002 1 [49] AWTERC01 ftttyyxxdsj3
20141002 1 [49] AWTERC01 5556jdjsjsjd
非常类似于PIVOT功能,但我无法进行聚合。有数千行,但我只需要3个TRXCODE作为列标题。我的专栏将读取TABLE,RES,TRM和MRC。然后,TRXINFO将落在每个列标题下
如果没有在语法和聚合上失去理智,我真的很感激解决方案。我希望我也能清楚地解释我的问题广告结果。
干杯 计
答案 0 :(得分:0)
像
这样的东西Select r.TABLE,r.TRXINFO as 'RES', t.TRXINFO as 'TRM', m.TRXINFO as 'MRC'
From MyTable r
Left Join MyTable t On r.Table = t.table and t.TRXCODE = 'TRM'
Left Join MyTable m On m.Table = t.table and m.TRXCODE = 'MRC'
Where r.TRXCODE = 'RES'
为其他代码添加更多联接,如果没有它们,则为一个或两个索引,无疑会提供有用的性能改进。
在将枢轴添加为功能之前,这基本上是旧学校进行枢轴类型查询的方式。
如果可能没有“RES”记录,您可以进行更多工作 如果您知道总有一个特定的TRXCODE,那么只需使用它而不是'RES'
完全外部加入(或者等效,但是对于五次加入会很痛苦。)
或者有一个偷偷摸摸的Pete解决方案,你基本上首先创建一个像
这样的查询Select Distinct [Table], 'XXX' as 'TRXCODE', 'Do Not Care' as TRXINFO
From MyTable
然后将六个代码加入到该代码中,然后从中查询以删除XXX列。