首页 > 解决方案 > SQL在数据库中查找后代的网格位置

问题描述

我不知道从哪里开始,但我想获取一个包含宽度和高度的父记录,并将一个网格映射到它,每个网格单元的大小都是固定的(10 毫米 x 10 毫米)。然后网格单元将按如下方式编号:XXX/YYY

XXX = THREE DIGIT STRING REPRESENTATION OF THE POSITION X FROM 001-999
YYY = THREE DIGITS STRING REPRESENTATION OF THE POSITION Y FROM 001-999

So grid cell 1 would look like so XXX/YYY = 001001
GRID CELL 1 ON ROW 2 = 001002
GRID CELL 10 ON ROW 20 = 010020
AND SO ON...

然后,我想知道使用 x,y 位置的父记录后代使用上面定义的网格单元值它们位于父级上的位置。

感谢您的帮助。使用 SQL 服务器

家长:

id TYPE   LABEL     CREATIONCLASS   width   height
 1  1003  myParent   -225100926      454    44.44

后裔:

id  TYPE    LABEL    CREATIONCLASS   IDX      X     Y
50 4000     Eth 01   -225100949     1001     169    11

我的结果应该类似于上面的结果,其中位置列包含新的 XXXYYY 值。

我将以 cte 身份运行整个过程,并为每个父母和匹配的后代执行此操作

输出:

id  TYPE    LABEL    CREATIONCLASS   IDX      X     Y   newPos
50 4000     Eth 01   -225100949     1001     169    11  016002

标签: sqlsql-server

解决方案


推荐阅读