Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Access中分区上的rown_number(),以两行数据为轴心进行获取_Sql_Oracle_Ms Access - Fatal编程技术网

Sql Access中分区上的rown_number(),以两行数据为轴心进行获取

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

对不起,很难搞清楚这个问题

我有以下SQL查询需要转换为MS Access。由于Access没有row_number(),或者与transform一起使用,因此无法获得所需的结果。是否有一些变通方法来获得相同的结果

原始表/查询结果:

下一个SQL查询:

[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中。