1

だから私はこのデータ構造を持っています

ID  DATE1     STATUS1 DATE2    STATUS2
1   1/1/2012  1       1/1/2012 3
1   3/1/2012  1       1/2/2012 3 
2   2/1/2012  1       3/4/2012 3
3   4/1/2012  1       NULL     3
4   2/1/2012  1       6/2/2012 3

どうやって行くの...

ID  DATE      STATUS
1   1/1/2012  1
1   1/1/2012  3
1   3/1/2012  1       
1   1/2/2012  3
2   2/1/2012  1       
2   3/4/2012  3
3   4/1/2012  1       
3   NULL      3
4   2/1/2012  1       
4   6/2/2012  3

私の最初の推測では、多くの結合されたアンピボットを使用することでしょうか?

4

3 に答える 3

1

ここでは UNPIVOT は必要ありません。普通の UNION ALL で十分です。

   SELECT ID, DATE1 DATE, STATUS1 STATUS
     FROM TBL
UNION ALL
   SELECT ID, DATE2 DATE, STATUS2 STATUS
     FROM TBL
 ORDER BY ID, DATE, STATUS
于 2012-10-19T10:05:03.557 に答える
1

あなたの場合、単純な UNION が役立つと思います:

select ID,  DATE1, STATUS1 FROM your_table
union 
select ID, DATE2, STATUS2 FROM your_table
于 2012-10-19T10:05:22.550 に答える
1

これにはユニオンを使用できます。

select id, date1 mydate, status1 status
from mytable
union all
select id, date2 mydate, status2 status
from mytable

重複を削除したい場合は、単に置き換えunion allてくださいunion

注: 結果の日付列に名前を付けたのは、mydate使用している dbms で日付がおそらく予約済みのキーワードであるためです..

于 2012-10-19T10:04:28.413 に答える