【发布时间】:2016-02-19 08:46:15
【问题描述】:
我需要你的帮助来编写一个存储过程来将下面给出的数据更新到 SQL Server 中的一个表中。
我已上传图片以确保格式设置正确。
标识零件编号的第二列,例如:part 100 在物料清单中具有 103 和 104 作为其组件。但是只有 1 个(103 分配给 id 1、part 100 或 104 分配给 id 2、part 100)。
为了让我们在顶层装配的物料清单计划中进行区分,我们需要用所用组件的最后一个字符更新装配哈希键(字符串)(例如:103,使用3),@987654332 @ 变为 300111。将哪个组件分配给父级并不重要。
任何人都可以帮我解决这个问题。谢谢。
Data Structure Expected result
ID Part hashkey ID Part hashkey
----------------- --------------------
1 100 000111 1 100 300111
2 100 000111 2 100 400111
3 103 000111 3 103 000111
4 104 000111 4 104 000111
数据结构: expected_result
【问题讨论】:
-
hashkey是string数据类型吗? -
部件 100 具有组件 101-109,部件 110 具有组件 111-119?
-
看起来预期的结果不符合这个条件:用所用组件的最后一个字符更新程序集哈希键(例如:102,使用 2),000111 变为 200111
-
如果预期的结果是好的,你需要:
cast(ROW_NUMBER() OVER(PARTITION BY t.[PART] ORDER BY t.[ID]) as varchar(10))并用获得的关于它的长度的值替换hashkey的前 N 个字符 -
你怎么知道 ID1 应该更新为 1 而不是 2?
标签: sql sql-server stored-procedures procedure