1

このテーブルには、ParameterID と HDFID の 2 つの列があります。

ParameterID HDFID
7   1
7   2
7   3
32  1
32  3
42  1
42  2
42  3
44  1
44  2
44  3
48  1
48  2
48  3
51  1
51  2
51  3
52  1
52  2
52  3

これに変えたい

ParameterID HDFID
7           1/2/3/
32          1/3/
42          1/2/3/
44          1/2/3/
48          1/2/3/
51          1/2/3/
52          1/2/3/

しかし、これは私が得ているものです。

ParameterID HDFID
7           1/2/3/1/3/3/2/1/1/2/3/3/2/1/1/2/3/3/2/1
32          1/2/3/1/3/3/2/1/1/2/3/3/2/1/1/2/3/3/2/1
42          1/2/3/1/3/3/2/1/1/2/3/3/2/1/1/2/3/3/2/1
44          1/2/3/1/3/3/2/1/1/2/3/3/2/1/1/2/3/3/2/1
48          1/2/3/1/3/3/2/1/1/2/3/3/2/1/1/2/3/3/2/1
51          1/2/3/1/3/3/2/1/1/2/3/3/2/1/1/2/3/3/2/1
52          1/2/3/1/3/3/2/1/1/2/3/3/2/1/1/2/3/3/2/1

これは私のコードです、

SELECT     ParameterID, HDFID = REPLACE
                          ((SELECT HDFID AS [data()]
                              FROM HDfParameters b
                              WHERE  b.ParameterID = ParameterID
                              ORDER BY b.ParameterID FOR xml path('')), ' ', '/')
FROM         HDfParameters
WHERE     ParameterID IS NOT NULL
GROUP BY ParameterID
4

1 に答える 1

1

内部クエリと外部クエリの間の相関関係がありませんでした。プレフィックスがないため、WHERE b.ParameterID = **ParameterID**実際にb.ParameterIDは「b」が内部クエリにあるためです。

SELECT     ParameterID, HDFID = REPLACE
                          ((SELECT HDFID AS [data()]
                              FROM HDfParameters b
                              WHERE  b.ParameterID = HDfParameters.ParameterID
                              ORDER BY ParameterID FOR xml path('')), ' ', '/')
FROM         HDfParameters
WHERE     ParameterID IS NOT NULL
GROUP BY ParameterID
于 2013-04-26T08:33:04.143 に答える