【发布时间】:2013-04-09 23:04:37
【问题描述】:
几天前问了一个问题,但决定走另一条路,所以我重新做这个问题,因为编辑变得有点混乱。
我有一个包含两列的数据列表:
pID sKey
100 8611
100 2318
101 3516
101 5413
102 6546
102 5646
102 8411
103 8795
103 5845
出现的第一个 sKey 将成为该 pID 的主 sKey,之后的每个 sKey 都将成为从属。数据看起来像这样。
pID sKey sKey_1
100 8611 2318
101 3516 5413
102 6546 5646
102 6546 8411
103 8795 5845
这个查询让我很接近
SELECT MyTable.pID, MyTable.sKey, MyTable_1.sKey
FROM MyTable
INNER JOIN MyTable AS MyTable_1
ON MyTable.pID = MyTable_1.pID
WHERE (((IIf([MyTable.sKey]=[MyTable_1.sKey],"Y","N"))="N"))
pID sKey sKey
100 2318 8611
100 8611 2318
101 3516 5413
101 5413 3516
102 5646 6546
102 5646 8411
102 6546 5646
102 6546 8411
102 8411 5646
102 8411 6546
103 5845 8795
103 8795 5845
但是正如你所看到的,它颠倒了顺序并将每个加倍,当它遇到一个有 3 个或更多 sKey 的实例时,它有点疯狂:\
任何人有任何想法,或者可以指出我正确的方向吗?
【问题讨论】:
-
为什么你的主/从是100/2318和102/6546?不明白主人的命令?使用 MIN 还是第一个实例?这两个例子是不同的。
-
抱歉你是对的,这是一个错字,已经修正了。
标签: sql ms-access ms-access-2003