2017-09-11 7 views
-4

私は次の列を含むテーブルを持っています:SQL Serverの複数行を持つ多対多

seq_no | detail_no | USER_ID | guid_key

と、次のと別のテーブル:

ヘッダ| guid_key | date_entered | login_details | summary_transaction |トレーラー

今は最終的な答えが、この方法であると一緒に、このような2つのテーブルをマッピングしたい:

SEQ_NO、detail_noとUSER_IDからの値でなければならない最初の行は、ヘッダ行目以降の値であるべきです。 seq_no、detail_no、およびuser_idの複数の行があります。最後の行は予告編でなければなりません。

第1のテーブルには、第2のテーブルの複数の行を参照する必要がある複数の行が含まれています。私はSQLプログラミングの初心者です。私はいくつかの多くの関係を調べましたが、効率的な方法を見つけることができません。私は両方のテーブルに一意のキーを書くためにGUIDジェネレータを使用しています。ただし、キーは行ごとに固有のものではなく、一連のデータの場合と同様の行セットです。

This is how I want it to be

+1

サンプルテーブルのデータと期待される結果を追加します。書式付きのテキストでください。 (画像がありません...) – jarlh

+0

2つのテーブルを相互に参照する必要があるかどうかを指定する必要があります。 2つのテーブルのどの列がその関係を定義していますか? –

+0

guid_key。私はそのような私の質問を編集しました。 :) –

答えて

0

SQLを使用すると、ここで達成しようとしているものであるプレゼンテーションツールではありません。また、2つの結果セットを1つの結果セットとして作成しようとしています(表1の列は、表2の列のいくつかの行に他の列を追加したい)。

create table #temp (ID int identity(1,1), col1 varchar(200), col2 varchar(200) etc.) 

insert into #temp col1, col2, etc values (select seq_no, guid_key, detail_no, user_id from table1) 

insert into #temp col1, col2 etc. values (select seq_no, guid_key, header, date_entered, login_details, summary_transaction from table1 inner join table2 on table1.guid_key = table2.guidkey where trailer is null) 

insert into #temp col1, col2 etc. values (select seq_no, guid_key, trailer, date_entered, login_details, summary_transaction from table1 inner join table2 on table1.guid_key = table2.guidkey where trailer is not null) 

select * from #temp order by col1, ID 

したがって、最初にすべてのヘッダーを入力してから、詳細を入力してから、予告編を入力します。したがって、あなたがseq_noとIDで注文すると、彼らは望む順番で出てくるでしょう。

+0

私はあなたが私のことを誤解していると思うか、おそらく私の質問が正しく構成されていなかったと思います。私はそれを提示したいだけではありません。私はそのような方法でもデータをリンクしたい。私は最初のテーブルのデータを2番目のテーブルのデータにリンクさせたい。しかし、問題は、最初のテーブルの行のセットを2番目のテーブルの行のセットにリンクしたいので、プライマリキーを使用できないので、それが一意である必要があるからです。私はGUIDジェネレータを使用して一組の行を一意にしています。 1行だけではありません。 –

+0

ええ、私はあなたが尋ねたことをやったと信じています。潜在的にサンプルデータとサンプル結果をモックアップする必要があります。次に、誰かがそれを達成するためにトランスフォーム/クエリを見つけるのを助けます – Paul

関連する問題