gpt4 book ai didi

sql - 创建以月份范围作为列的 SQL 表并使用表数据填充字段

转载 作者:行者123 更新时间:2023-12-04 14:03:54 25 4
gpt4 key购买 nike

我需要创建一个 SQL 表或 View ,为两个日期范围内的每个月生成列。因此,01/01/2014 - 04/01/2014 的范围将生成四列,标题分别为 Jan 2014、Feb 2014、March 2014、April 2014。我还需要它来使用与这些月份相关的数据填充字段下表,而任何没有适当数据的字段将用空值填充:

------------------------------------------------------
| Project# | Months | MonthValues |
------------------------------------------------------
| 001 | Jan 2014 | 1 |
------------------------------------------------------
| 002 | Feb 2014 | 2 |
------------------------------------------------------

这应该创建表:

---------------------------------------------------------------------------------------
| Project# | Jan 2014 | Feb 2014 | March 2014 | April 2014 |
---------------------------------------------------------------------------------------
| 001 | 1 | null | null | null |
---------------------------------------------------------------------------------------
| 001 | null | 2 | null | null |
---------------------------------------------------------------------------------------

使用 SQL Server 2008。

一段时间以来我一直在努力解决这个问题,但没有任何运气,任何帮助将不胜感激!

最佳答案

您可以使用 PIVOT功能:

SELECT  Project, [Jan 2014], [Feb 2014], [Mar 2014], [April 2014]
FROM T
PIVOT
( SUM(MonthValues)
FOR Months IN ([Jan 2014], [Feb 2014], [Mar 2014], [April 2014])
) pvt;

Example on SQL Fiddle

如果您需要能够根据日期改变列数,则需要使用动态 SQL 来生成上述查询。 SO 上确实有数百个关于此的问题。 I think this one会有所帮助(或者可能是 BlueFeet 的任何一个答案!)

关于sql - 创建以月份范围作为列的 SQL 表并使用表数据填充字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22074443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com