【发布时间】:2014-01-31 12:02:56
【问题描述】:
目前,我有一个表,其中包含以下三个
变量:公司名称、数据日期和价格。
表中包含的数据具有时间序列性质。对于每个公司名称,都有包含公司名称、价格和两个日期之一的行,'20011231' 或 '20111230'。
此数据集中没有重复项。我想帮助提出一个查询,将日期“20111230”的价格除以每个 company_name 组的日期“20011231”的价格。
此外,如果没有包含两个日期的行,我想删除所有 company_name 行。
对于第一个查询,我尝试了以下代码,但它给出了以下错误:“操作数数据类型 varchar 对于除法运算符无效。”
SELECT (SELECT prc
FROM A_returns
WHERE [date] = '20111230'
GROUP BY [comnam], [PRC])/
(SELECT prc
FROM A_returns
WHERE [date] = '20111230'
GROUP BY [comnam], [PRC])
FROM A_returns
为了消除上述错误,我尝试将价格列中的值转换为浮点数,但收到与以前相同的错误。
UPDATE A_returns
SET prc = CAST(prc AS float)
GO
【问题讨论】:
-
您对 prc 列使用什么数据类型?试投:CAST(prc as money)
标签: sql sql-server subquery time-series