我有一个我无法解决的问题。我使用的是Microsoft SQL Server 2008,我有一个包含四列的表
Id
Date (2013-07, 2013-08, 2011-03, etc)
Amount 1 (100, 150, etc.)
Amount 2 (100, 80, etc.)如果为Amount 1 > 150,则需要使用Date中的值作为列名创建新列,并将Amount 2分发到从Date值后一个月开始的6个(日期)期间。
它应该看起来像这样:
Id Date Amount 1 Amount 2
----------------------------------
1 2013-07 160 60
2 2013-10 180 80
Id Date Amount 1 2013-08 2013-09 2013-10 2013-11 2013-12 2014-01 ...
--------------------------------------------------------------------------------
1 2013-07 160 10 10 10 10 10 10
2 2013-10 180 20 20 20... 我不知道该怎么做,任何帮助都是非常感谢的!谢谢!
发布于 2013-07-24 00:24:07
表本身不应该有这些额外的列,因为这将是一个非规范化的表结构。在很多情况下,这是一种糟糕的数据存储方式。但是,您可以很容易地对现有表执行查询,该查询将返回所需表单中的其他列,以便以这种方式显示它。查看PIVOT and UNPIVOT。
https://stackoverflow.com/questions/17814496
复制相似问题