选择垂直表到水平表SQL

时间:2014-09-08 02:36:58

标签: sql sql-server sql-server-2008

我有下表:

-------------------------------------------
ID     Group     myDate       Value
-------------------------------------------
1      A         2014-06-01   100
2      A         2014-06-02   200
3      A         2014-06-03   300
4      B         2014-06-01   50
5      B         2014-06-02   100
6      B         2014-06-03   125

我希望得到以下结果:

-------------------------------------------
myDate       Value     myDate      Value
-------------------------------------------
2014-06-01   100       2014-06-01  50   
2014-06-02   200       2014-06-02  100
2014-06-03   300       2014-06-03  125

所以我想基于Group字段使其成为水平视图。 有谁知道怎么做?

谢谢。

1 个答案:

答案 0 :(得分:1)

<强>小提琴: http://sqlfiddle.com/#!6/df9dc/1/0

select      min(case when grp = 'A' then mydate end) as mydate1,
            min(case when grp = 'A' then value end) as value1,
            min(case when grp = 'B' then mydate end) as mydate2,
            min(case when grp = 'B' then value end) as value2
from        tbl
group by    mydate

如果你有很多团体会很麻烦,但如果只有几个团体,那么为其他人添加必要的案例陈述应该不会太难。