我无法弄清楚一个 sql 查询(使用 MS Sql Server)。我正在尝试从数据集中检索单行,其中具有一个 id 的项目可以有多行。让我失望的部分是正确的行应该基于“层次结构”。我试图在这个问题上抛出一个案例陈述。
一些样本数据:
Id Class Date
100 Red 2012-12-12
100 Blue 2012-12-31
200 Red 2012-10-31
300 Green 2012-04-04
300 Blue 2011-09-01
我想根据 Class 的值返回一行。
Case When Red Then
Date
Case When Blue Then
Date
Case When Green Then
Date
Else
''
我的最终数据集应如下所示:
Id Class Date
100 Red 2012-12-12
200 Red 2012-10-31
300 Blue 2011-09-01
因此,如果其中一个重复行的值为 Red,则首先使用该行中的日期。然后是蓝色,然后是绿色。
一整天都在研究这个,玩弄子查询、分组、拥有、案例陈述、派生表。我对我的 sql 技能很生疏,因为它已经有一段时间了。
关于我应该采取的方向的任何提示?