gpt4 book ai didi

sql - 是否可以在 SQL PIVOT 中使用动态创建的值?

转载 作者:行者123 更新时间:2023-12-04 16:47:13 30 4
gpt4 key购买 nike

我有以下功能:-

ALTER FUNCTION fncTest ()
RETURNS TABLE
AS
RETURN
(SELECT *
FROM (SELECT TOP 100 PERCENT sOrderType,
SUM(iQty) AS iOrdQty,
( YEAR(dReqd) * 100 ) + DATEPART(Week, dReqd) AS iWkNo
FROM tblOrderBook
GROUP BY sOrderType,
dOrdered) AS tblTemp PIVOT(SUM(Qty) FOR iWkNo IN
([201118], [201119], [201120], [201121], [201122])) AS pvtTemp)

这为我提供了一个显示 2011 年第 18-22 周订单数量的旋转表。

是否可以用基于 GETDATE() 的动态日期替换硬编码的周。

ie:
  • [201118] 替换为 (YEAR(GETDATE()+7)*100)+DATEPART(week,GETDATE()+7)
  • [200119] 替换为 (YEAR(GETDATE()+14)*100)+DATEPART(week,GETDATE()+14)
  • [200120] 替换为 (YEAR(GETDATE()+21)*100)+DATEPART(week,GETDATE()+21)

等...

谢谢。

最佳答案

不是你想做的。执行此操作的唯一方法是动态 SQL,您不能在函数中使用动态 SQL。

但是您可以使用固定的列名称,例如 [1]、[2]、[3] 等来表示相对于当前日期的周数。

关于sql - 是否可以在 SQL PIVOT 中使用动态创建的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6045828/

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