我需要顯示不同的行,實際上應該得到每個基於日期字段的最近1行。Linq到數據集並顯示linq結果在中繼器控制
我試圖解決這個使用CTE,但進一步測試它不能正常工作,因爲它只會得到基於ROWumber的行,如果我們使用過濾器,然後它不會得到所需的結果。
,所以我想從表中得到ALBUMID,ALBUMNAME,AlbumDate和AlbumYear_YYYY,並把它傳遞給數據集,然後使用LINQ againt此數據集基於年度年僅
最新專輯得到進一步的唯一行假設我的表有以下行
ALBUMID,ALBUMNAME,AlbumDate,AlbumIcon
我的MS-SQL查詢
string sql= "SELECT AlbumID, AlbumName, AlbumIcon, AlbumDate, DATEPART(YYYY, AlbumDate) AS Year FROM PhotoAlbumName "
DataSet ds = DataProvider.Connect_Select(strSql);
DataView dv = ds.Tables[0].DefaultView;
// DO LINQ這裏和LINQ的值傳遞給傳呼機控制
PagerControl1.BindDataWithPaging(rptAlbumsCategories, dv.Table);
我不知道如何做到這一點,但如果它的工作原理,然後才能消除不需要的結果,這恰好是由於下面的SQL查詢。
;WITH DistinctYEAR AS
(
SELECT AlbumID, AlbumIcon, AlbumDate, AlbumVisible,AlbumName,
ROW_NUMBER() OVER(PARTITION BY DATEPART(YYYY,AlbumDate) ORDER BY AlbumDate) AS 'RowNum'
FROM PhotoAlbumName
)
SELECT * FROM DistinctYEAR WHERE RowNum = 1 AND AlbumVisible = 1 ORDER BY AlbumDate DESC
UPDATE:
貴「UPDATE」的意思是,你的答案是現在已經回答?除此之外,我認爲你的cte是不正確的。您應該將'Where'子句應用於'CTE'而不是外部'SELECT'。 –
不,我只是添加了一個鏈接,用戶也希望根據日期字段獲取唯一的數據,但使用鏈接。 t並沒有顯示完整的例子... – Learning