Sql Access中分区上的rown_number(),以两行数据为轴心进行获取
对不起,很难搞清楚这个问题 我有以下SQL查询需要转换为MS Access。由于Access没有row_number(),或者与transform一起使用,因此无法获得所需的结果。是否有一些变通方法来获得相同的结果 原始表/查询结果: 下一个SQL查询:Sql Access中分区上的rown_number(),以两行数据为轴心进行获取,sql,oracle,ms-access,Sql,Oracle,Ms Access,对不起,很难搞清楚这个问题 我有以下SQL查询需要转换为MS Access。由于Access没有row_number(),或者与transform一起使用,因此无法获得所需的结果。是否有一些变通方法来获得相同的结果 原始表/查询结果: 下一个SQL查询: [SELECT * FROM (SELECT d.loc_area, d.loc_rack, d.loc_height, d.loc_pla
[SELECT *
FROM (SELECT d.loc_area,
d.loc_rack,
d.loc_height,
d.loc_place,
d.locvrc,
row_number() OVER(PARTITION BY d.loc_area, d.loc_rack, d.loc_place
ORDER BY d.loc_height) rn_pivot
FROM (select locvrc,
SUBSTR(stoloc, 0, 2) loc_area,
SUBSTR(stoloc, 4, 2) loc_rack,
SUBSTR(stoloc, 6, 1) loc_place,
SUBSTR(stoloc, -2) loc_height
FROM locmst) d)
PIVOT (MAX(loc_height) AS EXT, MIN(locvrc) AS UNIQ FOR rn_pivot IN ('1' AS HEIGHT_1, '2' AS HEIGHT_2, '3' AS HEIGHT_3, '4' AS HEIGHT_4, '5' AS HEIGHT_5, '6' AS HEIGHT_6, '7' AS HEIGHT_7, '8' AS HEIGHT_8))
ORDER BY LOC_AREA,
LOC_RACK,
LOC_PLACE]
它为我提供了一个很好的支点,它总结了第一排的三个柱,并将其余的2个柱(高度、locvrc)放在同一排:
问题是如何在Access中做到这一点。我正在将我的sql表链接到Access表,并尝试从该表执行查询。
转换我正在尝试的内容:
TRANSFORM First(loc_height) AS FirstHeight
SELECT loc_area, loc_place, loc_rack
FROM
(SELECT
loc_area,
loc_place, loc_rack,
loc_height
FROM tbl_labels
)
GROUP BY loc_area, loc_place, loc_rack
PIVOT loc_height
它完成了任务,但结果不是必需的。此外,这缺少locvrc,无法使多个值正常工作:
有空格,或者高度现在在列中,并显示查询中的所有高度
你知道如何将其转换为类似SQL中的内容吗
提前多谢
溴
一月Argh。我的建议是找到MS Access以外的数据库将代码移动到。当有更兼容、更易于使用的免费数据库时,为什么要后退几步呢?我建议您将原始查询作为Access中的传递查询运行。您可以使用服务器SQL,并在Access中获得结果。感谢您的评论,我同意不同的数据库可能是更好的选择,但现在我们有这么多的Access,这只是附加功能,所以必须处理这个问题。我将通过一个镜头来传球,我打算测试一下,只是希望有更好的方式,这样我就可以使用我已经存在的表格了,表格是由表格制作的:)谢谢!在Access中,使用DCount()可以为每个组生成行序列号。复习。然后,在多个数据点上进行转换的一种方法是构建两个交叉表查询,然后将它们连接到SELECT中。