Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server:如何增加datetime并使用该值获取一列以检索下一个值?_Sql Server_Date_Datetime - Fatal编程技术网

Sql server SQL Server:如何增加datetime并使用该值获取一列以检索下一个值?

Sql server SQL Server:如何增加datetime并使用该值获取一列以检索下一个值?,sql-server,date,datetime,Sql Server,Date,Datetime,对TSQL来说有点陌生,希望有人能帮上忙。我有一个巨大的表,大约有1000列和1700行。每列都是一个日期,只有一列只是一个名称。表中的每个值(名称列除外)都是一个数字。我想做的是: 从给定行日期的最低光谱开始(已知最低日期为2011年1月25日),并将其存储为第一个值 将日期增加1,并找到上面相同给定行的对应列。这将成为第二个值 将第一个值除以第二个值 将所有这些存储在一个新表中,其中行是名称,列是第一个值的日期,值是执行除法的结果 我意识到,要做到这一点,我需要使用动态SQL,但我的技能有点

对TSQL来说有点陌生,希望有人能帮上忙。我有一个巨大的表,大约有1000列和1700行。每列都是一个日期,只有一列只是一个名称。表中的每个值(名称列除外)都是一个数字。我想做的是:

  • 从给定行日期的最低光谱开始(已知最低日期为2011年1月25日),并将其存储为第一个值
  • 将日期增加1,并找到上面相同给定行的对应列。这将成为第二个值
  • 将第一个值除以第二个值
  • 将所有这些存储在一个新表中,其中行是名称,列是第一个值的日期,值是执行除法的结果 我意识到,要做到这一点,我需要使用动态SQL,但我的技能有点欠缺,甚至在尝试将日期查询设置为变量时都遇到了困难。(我不断发现我的字符串不是有效的标识符)

    所以我将一步一步地进行,我可以使用上面的日期执行常规选择,以获得给定行的最低日期值。有人能帮我将这个日期值增加1,然后查看同一行中的那个列,得到第二个值吗


    谢谢你的时间

    谢谢你的评论。我想我能得到的最接近公认答案是@JorgeCampos和@VIVEK。问题肯定是我的桌子大小。原来的表有超过1000000行,我想在我所问的透视表上工作可能会更容易。事实证明,处理原始数据集(虽然很慢)是最好的方法,因为新表太疯狂了,无法处理


    很高兴有人帮助了在这个问题上迷失方向的人。再次感谢各位

    为了更好地理解,您可以添加您的表结构吗?欢迎来到这里。你必须在你的问题中加入你尝试过的代码,并从中找出哪里出了问题。旁注:一张有1000列的桌子???这是一个非常非常非常糟糕的设计。也许您可以在此寻求帮助,了解如何改进此设计,并解释为什么在一个表中包含所有列。这不是问题答案的一部分,而是为了降低1000列表的复杂性,您可以为列维护另一个表,并将这些列ID的数据存储在另一个表中。您可以使用DATEADD()函数增加日期值,但是我完全不明白你要问的其他问题。如果你对一个有100万行的表有性能问题,为什么不发布查询并寻求帮助。我可能会这样做,但我仍然想在查询中找出一些错误。那我自己去试试。希望我不会回来,但我们会看到。。。