2017-08-05 10 views
0

私の質問タイトルは正確に意味するものではないかもしれませんが、私はtbhを書くべきか分かりませんでした。他のテーブルに参加して各グループの@ROW_NUMBERを選択してリセットしてください

質問に入るようにしましょう。私が持っていると思いますが、次の

表1

+---------+---------+ 
| Column1 | Column2 | 
+---------+---------+ 
| Code1 | LCode1 | 
| Code2 | LCode2 | 
| Code3 | LCode3 | 
+---------+---------+ 

表2

+---------+---------+ 
| Column3 | Column4 | 
+---------+---------+ 
| LCode1 | string1 | 
| LCode1 | string2 | 
| LCode1 | string3 | 
| LCode2 | String1 | 
| LCode2 | String2 | 
| LCode2 | String3 | 
| LCode2 | String4 | 
| LCode3 | String1 | 
| LCode3 | String2 | 
+---------+---------+ 

選択したテーブルのようなものですが、そのようにする必要があります...

+-------+---------+-----------+---------+ 
| Index | Column1 | Column2-3 | Column4 | 
+-------+---------+-----------+---------+ 
|  0 | Code1 | LCode1 | string1 | 
|  1 | Code1 | LCode1 | string2 | 
|  2 | Code1 | LCode1 | string3 | 
|  0 | Code2 | LCode2 | string1 | 
|  1 | Code2 | LCode2 | string2 | 
|  2 | Code2 | LCode2 | string3 | 
|  3 | Code2 | LCode2 | string4 | 
|  0 | Code3 | LCode3 | string1 | 
|  1 | Code3 | LCode3 | string1 | 
+-------+---------+-----------+---------+ 

私が使用しようとしましたROW_NUMBERは両方のテーブル間で結合ステートメントを使用していますが、残念ながら私はそれに運がありません。指定したColumn2-3の値にWHERE文を使用するのは、それらのすべてではない場合にのみ可能です。事前に 例として

SELECT ROW_NUMBER() AS Index, * FROM Table1 T1 JOIN Table2 T2 ON T1.Column2 = T2.Column3 Order By Index 

感謝。

答えて

0

あなたがしたいように見える:それはSQLのキーワードであるため

SELECT ROW_NUMBER() OVER (PARTITION BY T1.column1 ORDER BY T2.column4) - 1 AS seqnum, 
     T1.*, T2.* 
FROM Table1 T1 JOIN 
    Table2 T2 
    ON T1.Column2 = T2.Column3 
ORDER BY seqnum; 

indexは、列の悪い名前です。

+0

私はそれを試みましたが、ROW_NUMBER関数にエラーがあるようです。 'ROW_NUMBER'関数は、正確に0の引数 ' – GAMER

+0

@Gamerをとります。 。 。おっと、クエリにタイプミスがありました。 –

+0

正しい構文は 'row_number()(col1 by col3 order by col3) 'です。 – MWillemse

0

あなたに試してみてください、あなたにPARTITION BYを使用し、私はあなたを助けたことを願っ

を問い合わせます。

関連する問題