Hali, elakadtam a melohelyen egy projectel. SQL2008-at hasznalunk es egyszerre tobb tablabol kell lekerdeznem majd lazy-scrollt hasznalni. A tablakban hirek vannak amiket egybe lekerek es datum szerint sorba rakom. Magyarul az osszes tablabol kellenek az adatok datum szerint rendezve egyben. Ez mukodik is, viszont MSSQL-ben a LIMIT nem letezik igy fogalmam sincs hogyan oldjam meg a lapozast. Probaltam a CTE-t de nem igazan ertem hoygan mukodik.
Az SQL amit most az elso 50-re hasznalok :
Kód:
SELECT TOP 50 *
FROM ((SELECT top 50 [PostID] as SuggestID,NULL AS NewsLetterID, NULL AS DocumentID, Cast([DateTime] AS dATE) as created
FROM [Suggestions] WHERE [Moderated]=1 AND [ParentPostID]=0)
UNION ALL (SELECT NULL AS SuggestID, [RecordID] as NewsLetterID, NULL AS DocumentID, CAST([CreateDate] AS dATE) as created FROM [NewsLetters])
) results ORDER BY created DESC
Ezt probaltam CTE-vel de cask a NewsLetterID-t kapom vissza a tobbi NULL:
Kód:
WITH u AS (
SELECT [PostID] as SuggestID,NULL AS NewsLetterID, NULL AS DocumentID, Cast([DateTime] AS dATE) as created
FROM [Suggestions]
UNION
SELECT NULL AS SuggestID, [RecordID] as NewsLetterID, NULL AS DocumentID, CAST([CreateDate] AS dATE) as created
FROM [NewsLetters]
), ru AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY created) AS RowNum
FROM u
)
SELECT SuggestID, NewsLetterID, DocumentID
FROM ru
WHERE RowNum BETWEEN 0 AND 20
Ezt a lekerdezest kellene megoldanom nem cask a top50-re hanem lapozva az egesz tablara. A segitseget elore is koszonom!
Könyvjelzők