3

次の3つのデータセットを結合するためのjoinステートメントを作成しようとしています。(これはMS SQL Serverを使用しています)

セット1
ID日付Col1
1月11日a1
1月13日a2

セット2
ID日付Col2
1月11日b1
1月15日b2

セット3
ID日付Col3
1月15日c1
1月17日c2

組み合わせセット
ID日付Col1Col2Col3
1月11日a1b1
1月13日a2
1月15日b2c1
1月17日c2       

完全な外部結合でこれを行うことができると思いますが、製品間の大きな問題に直面しています。

4

3 に答える 3

3

これを試してみてください:

select coalesce(t1.date, t2.date, t3.date) date, col1, col2, col3 from table1 t1
full outer join table2 t2 on (t1.date = t2.date)
full outer join table3 t3 on (t2.date = t3.date)
于 2012-11-19T04:32:06.450 に答える
1

dateデータセットに基づいて、列に基づいて3つのテーブルを結合したいようです。すべてのIDが1に設定されている理由を明確にするまで、ここではID列を無視していることに注意してください。

SELECT ISNULL(set1.dt, ISNULL(set2.dt, set3.dt)) as 'Date', col1, col2, col3
FROM set1
FULL OUTER JOIN set2 ON CAST(set1.dt AS DATE) = CAST(set2.dt AS DATE)
FULL OUTER JOIN set3 ON CAST(set2.dt AS DATE) = CAST(set3.dt AS DATE)
于 2012-11-19T04:28:27.637 に答える
1

SELECT ISNULL(a.ID,isnull(b.ID,c.ID)) ID,coalesce(a.dt, b.dt, c.dt) , Col1, Col2, Col3 FROM set1 a FULL OUTER JOIN set2 b ON a.dt = b.dt FULL OUTER JOIN set3 c ON b.dt= c.dt

于 2012-11-19T05:00:41.167 に答える