我有一个表ValuationHistory
有以下的列加入本身的表
Code | ValuationDate | NetAssetValue | PricePerShare | Subscriptions | Redemptions
ABC | 2014-06-30 | 12546.50 | 100.23 | 60 | 70
CEF | 2014-06-30 | 10025.20 | 120.50 | 30 | 20
ABC | 2014-07-31 | 12505.50 | 101.50 | 40 | 60
ABC | 2014-08-31 | 13051.41 | 102.50 | 35 | 70
现在,用户将选择从一个aspx页面一个估值日期和代码。我想写一个SQL查询,将之前由用户
Code | BeginningEquity | Subscriptions | Redemptions | EndingEquity
选择的评估基准日给我用下面列的报告所有估值日期在哪里
Code
是选择的代码用户BeginningEquity
是NetAssetValue
前一估值Subscriptions
是直线前进Redemptions
是直线前进EndingEquity
是在valuationDate
我首先创建了一个名为@ValDates
表变量,并得到了所有的估值日期,该临时表的NetAssetValue
。然后我做了@ValDates
与ValuationHistory
表的连接。
但我收到以下查询错误。该错误信息是:
子查询返回的多个值
可能有人帮我写在一个更好的办法
SELECT (SELECT NetAssetValue
FROM ValuationHistory
WHERE ValuationDate IN (SELECT Max(ValuationDate)
FROM ValuationHistory
WHERE ValuationDate < nd.ValuationDate)),
Subscriptions,
Redemptions,
EndingEquity
FROM ValuationHistory vh
INNER JOIN @ValDates vd
ON vh.ValuationDate = vd.ValuationDate
WHERE vh.Code = @Code
AND vh.ValuationDate < = @ValuationDate
'SELECT TOP 1 NetAssetValue'? – 2014-09-25 12:21:00
谢谢蒂姆,首先正确地格式化我的问题。 “Top 1”修复了我的子查询返回了多个值的错误,但现在看起来BeginningEquity和EndingEquity的值相同 – binpro 2014-09-25 12:35:36
您希望为样本数据列表输出什么? – EricZ 2014-09-25 14:55:13