我有一个我无法解决的问题。我在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
后的 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...
之后的一个月内价值。
它应该是这样的:
{{1}}
我不知道该怎么做,任何帮助都非常感谢!谢谢!
答案 0 :(得分:1)
表本身不应该有这些额外的列,因为这将是非规范化的表结构。在许多情况下,这是一种很难存储数据的方法。但是,您可以轻松地对现有表进行查询,该表将返回所需表单中的其他列,以便您可以通过这种方式显示它。查看PIVOT and UNPIVOT。