Sql server 2005 如何在SQLServer2005中编写此查询

Sql server 2005 如何在SQLServer2005中编写此查询,sql-server-2005,Sql Server 2005,这张表显示 Emp 1于2010年1月14日在项目1上工作了7.0小时 Emp 2于2010年1月15日在项目2上工作了8.0小时 Emp 1于2010年1月16日在项目1上工作了8.0小时 我想像这样更新该表: 我想用7.0为Emp 1更新列[14 Jan]第一行 我想用8.0为Emp 2更新列[15 Jan]第二行 我想用8.0为Emp 1更新[1月16日]列第三行 因此,结果应该是: 有谁能建议我如何在SQL Server 2005中编写相同的查询吗?H从得到了非常好的答复,您确

这张表显示

  • Emp 1
    于2010年1月14日在
    项目1
    上工作了7.0小时
  • Emp 2
    于2010年1月15日在
    项目2
    上工作了8.0小时
  • Emp 1
    于2010年1月16日在
    项目1
    上工作了8.0小时
我想像这样更新该表:

  • 我想用7.0为Emp 1更新列[14 Jan]第一行
  • 我想用8.0为Emp 2更新列[15 Jan]第二行
  • 我想用8.0为Emp 1更新[1月16日]列第三行
因此,结果应该是:


有谁能建议我如何在SQL Server 2005中编写相同的查询吗?

H从

得到了非常好的答复,您确定需要此非规范化列吗?您可以在不进行反规范化的情况下获取数据。您好,谢谢您的评论。因为,我必须将结果显示为报告,所以我不需要规范化的列。您能建议我如何使用Pivot概念来处理此需求吗?如果Pivot方法是您的解决方案,我建议您编辑答案并告知相关信息,这样有人可以快速编写select。您的实际问题使用case语句非常简单,但我认为人们不喜欢表模式,这可能是没有答案的原因。