我试图计算天数之间的价格变化百分比。由于日子不是连续的,我在查询中建立一个计算字段,告诉我它是哪一天(第1天,第2天等)。为了今天与昨天进行比较,我在子查询中将计算的天数减1。我想要做的是在计算的相对日期中加入内部和外部查询。我想出的代码是:Sql服务器 - 使用计算字段联接子查询
SELECT TOP 11
P.Date,
(AVG(P.SettlementPri) - PriceY)/PriceY as PriceChange,
P.Symbol,
(RANK() OVER (ORDER BY P.Date desc)) as dayrank_Today
FROM OTE P
JOIN (SELECT TOP 11
C.Date,
AVG(SettlementPri) as PriceY,
(RANK() OVER (ORDER BY C.Date desc))+1 as dayrank_Yest
FROM OTE C
WHERE C.ComCode = 'C-'
GROUP BY c.Date) C ON dayrank_Today = C.dayrank_Yest
WHERE P.ComCode = 'C-'
GROUP BY P.Symbol, P.Date
如果我尝试和执行查询,我得到的指示dayrank_Today是无效的列的埃罗消息。我曾尝试将其重命名,排除它,嘲笑它,并让我蹲下。仍然是一个错误。
你用什么db? SQL服务器? – 2011-05-20 01:10:51
理解你的问题有点困难。你能否给我们提供表格结构(仅适用于相关领域),输入数据,期望的查询结果?理想情况下,您需要提供创建表的脚本并使用示例数据填充它们。 – 2011-05-20 01:13:50
@ M.R .:'TOP'是SQL Server; 'RANK'表示SQL Server 2005+ – 2011-05-20 01:17:37