我有一個表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