Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择垂直表到水平表SQL_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

选择垂直表到水平表SQL

选择垂直表到水平表SQL,sql,sql-server,sql-server-2008,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 2

我有下表:

-------------------------------------------
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
所以我想让它基于组域的水平视图。 有人知道怎么做吗?

谢谢。

小提琴:


如果您有很多组,则会很麻烦,但如果只有几个组,则为其他组添加必要的案例说明应该不会太难。

表中有多少行可能具有相同的日期?总是只有2,或者可能有3、4、5等?组值也是可预测的(A、B、C等)还是变化很大?@BrianDeMilia,实际上只有A、B和C。。但是我想说的可能不止这些。干杯,伙计,这很有效!但需要找出,如果组数超过了这个数,该如何处理。但这不是最好的方法,因为如果列表不断增长,则会使您的代码变得繁琐,因此最好使用pivot:)即使使用pivot,您仍然需要为其他组添加代码,它不是动态的@Haminteu要为其他组添加case语句,只需复制并粘贴已有的case语句,但将A或B更改为C或其他组
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