所以我想寫的東西是這樣的:嵌套LINQ查詢佐賀
SELECT s.CompanyID,
s.ShareDate,
s.OutstandingShares,
s.ControlBlock
FROM (
SELECT MAX(ShareDate) AS Sharedate,
CompanyID
FROM ShareInfo
WHERE (ShareDate <= @filter_date)
GROUP BY CompanyID
) AS si
INNER JOIN
tblShareInfo AS s ON s.ShareDate = si.Sharedate AND s.CompanyID = si.CompanyID
從本質上講,這是試圖返回最近的共享信息,我們保持一個正在運行的歷史。現在我正在嘗試在LINQ中寫出類似於此的內容。
這裏是我最親密的嘗試:
From a _
In db_context.ShareInfos _
Where a.ShareDate <= filter_date _
Group a By a.CompanyID Into Group _
Select CompanyID, MostRecentShareDate = Group.Max(Function(a) a.ShareDate) _
Join b In db_context.ShareInfos On b.CompanyID Equals a.CompanyID _
Select b.CompanyID, b.ShareDate, b.OS, b.CB()
不幸的是,這並不編譯。顯然我不知道LINQ語法。任何人都可以引導我走向正確的方向嗎?
謝謝。
這是C#的語法,順便說一句... – 2010-01-13 22:23:13
我想我應該提到的是,不編譯的部分是加入它的行。該行最後的'a.CompanyID'給出錯誤「名稱」a'未被聲明或不在當前範圍內「 – Bitfiddler 2010-01-13 23:05:06