0

このようなものを返すクエリを実行したい

Table 1
Id1    Name
  1    A
  2    B
  3    C
  4    D
  5    E   

 Table 2
    Id2
    10
    11
    12

table2 に移動し、次のように Table1 の各レコードを返す必要があります。

Id1 Name Id2
1    A   10
2    B   11
3    C   12
4    D   10
5    E   11

Table2 のレコードが完成したら、Table1 のレコードが完成するまでやり直します。ありがとうございます。

4

1 に答える 1

0

このクエリを試してみてください。これは完全に機能します(試すためのリンクは次のとおりです)

WITH tempTable1 AS
(
    SELECT
        b.ID2,
        ROW_NUMBER() OVER (ORDER BY ID2) AS position1
    FROM
        TABLE2 b
)
SELECT x.ID1, x.NAME, isnull((SELECT b.id2 FROM tempTable1 b WHERE b.position1 = (x.position2 % (SELECT COUNT(1) FROM tempTable1))),
(SELECT TOP 1 y.id2 FROM tempTable1 y ORDER BY y.position1 desc)) AS ID2
FROM (
SELECT A.ID1, A.NAME, ROW_NUMBER() OVER (ORDER BY A.ID1) AS position2
FROM TABLE1 A
) X

このクエリは好きではありませんが、別のクエリを作成できませんでした:(

于 2013-07-04T16:44:52.253 に答える