gpt4 book ai didi

SQL排序表和更新列

转载 作者:行者123 更新时间:2023-12-03 02:10:52 25 4
gpt4 key购买 nike

嗨,谁能告诉我如何在 MS Access 数据库中使用 SQL 执行以下操作?

我有一个如下所示的表格:

我的表

Plan    Item        Sort_Number
-------------------------------------
11026 ZSC1753D
11018 PS13-2
11026 ZSC1753B
11018 PSHH278B
11026 ZSO1753A
11018 PS3169
11027 ZSC1754B
11027 ZSC1754A
11026 ZSC1753A
11026 ZSC1753C

我有一个表(上图),需要首先按计划(第 1 列)排序,然后按项目的升序(第 2 列)排序,第三列“排序编号”需要填充顺序号 1 到xx.. 对于每个不同的计划。

所以最终的排序表将如下所示:

我的表

Plan    Item    Sort_Number
-------------------------------------
11018 PS13-2 1
11018 PS3169 2
11018 PSHH278B 3
11026 ZSC1753A 1
11026 ZSC1753B 2
11026 ZSC1753C 3
11026 ZSC1753D 4
11026 ZSO1753A 5
11027 ZSC1754A 1
11027 ZSC1754B 2

我可以使用 SQL 来完成此操作吗?在 MS Access 数据库中。

提前致谢

最佳答案

UPDATE myTable d, 
(SELECT Plan, Item,
(SELECT count(*) + 1
FROM myTable i
WHERE i.Plan = o.Plan and i.Item < o.Item) as Sort_Number
FROM myTable o) as s
SET d.Sort_Number = s.Sort_Number
WHERE d.Plan = s.Plan and d.Item = s.Item

或者

UPDATE myTable d INNER JOIN 
(SELECT Plan, Item,
(SELECT count(*) + 1
FROM myTable i
WHERE i.Plan = o.Plan and i.Item < o.Item) as Sort_Number
FROM myTable o) s
ON d.Plan = s.Plan and d.Item = s.Item
SET d.Sort_Number = s.Sort_Number

编辑:我知道这效率不高,但对于有限数量的记录来说,它可以毫无问题地工作。

EDIT2:请注意,我还没有在 MS-Access 中尝试过此查询。我希望它能为您提供有关如何完成此操作的意见。

EDIT3:使用临时表

SELECT Plan, Item, 
(SELECT count(*) + 1
FROM myTable i
WHERE i.Plan = o.Plan and i.Item < o.Item) as Sort_Number
INTO TEMPTABLEFORTEST
FROM myTable o

UPDATE myTable i
INNER JOIN TEMPTABLEFORTEST o
ON i.Plan = o.Plan and i.Item = o.Item set i.Sort_Number = o.Sort_Number

DROP Table TEMPTABLEFORTEST

关于SQL排序表和更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12529113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com