chcę uzyskać tego rodzaju skutek korzystania MS SQLJak uzyskać numer wiersza na podstawie unikalnego pola i klasyfikowane według innego pola
PAGE 1
ID Research Title Published Date Author ID Author Name
1 Research A 2013-5-10 D567 John
1 Research A 2013-5-10 D568 Stan
2 Research B 2013-5-9 D569 Steve
3 Research C 2013-5-8 D570 Michael
PAGE 2
ID Research Title Published Date Author ID Author Name
4 Research D 2013-5-8 D567 John
5 Research F 2013-5-7 D570 Michael
5 Research F 2013-5-7 D568 Stan
5 Research F 2013-5-7 D569 Steve
6 Research E 2013-5-6 D569 Steve
wynik jest połączeniem 3 tabeli
Tabela „Badań ", która posiada wszystkie dane badawcze
------ TABLE Research------
- ResearchID Uniqueidentifier
- ResearchTitle text
- PublishedDate
Tabela«Autor», który przechowuje wszystkie dane wykładowca
------ TABLE Author ------
- AuthorID varchar(20)
- AuthorName vachar(100)
A Table "ResearchAuthorMapping", które tworzą związek między "badań" i "autora"
------ TABLE ResearchAuthorMapping------
- ResearchID uniqueidentifier
- AuthorID varchar(20)
Oto moje zapytanie dotychczas
DECLARE @offset int;
DECLARE @limit int = 3;
DECLARE @page int = 1 -- CHANGE BY REQUEST
SET @offset = ((@page - 1) * @limit) + 1;
SELECT *
FROM
(
SELECT
DENSE_RANK() OVER(ORDER BY Research.ResearchTitle DESC) AS num,
Research.*
FROM
Research
LEFT JOIN
ResearchAuthorMapping ON Research.ResearchID = ResearchAuthorMapping.ResearchID
LEFT JOIN
Author ON ResearchAuthorMapping.AuthorID = Author.AuthorID
)TempTable
WHERE
TempTable.num >= @Offset AND TempTable.num < @offset + @limit
Do tej pory, jestem tylko w stanie osiągnąć ten
PAGE 1
ID Research Title Published Date Author ID Author Name
1 Research F 2013-5-7 D570 Michael
1 Research F 2013-5-7 D568 Stan
1 Research F 2013-5-7 D569 Steve
2 Research E 2013-5-6 D569 Steve
3 Research D 2013-5-8 D567 John
PAGE 2
ID Research Title Published Date Author ID Author Name
4 Research C 2013-5-8 D570 Michael
5 Research B 2013-5-9 D569 Steve
6 Research A 2013-5-10 D567 John
6 Research A 2013-5-10 D568 Stan
zestaw wyników, że zamówione przez Research tytułu
Ale, co ja chcę, to dane sortowane według daty wydania, ale coraz identyfikator na podstawie
ResearchTitle/ResearchID grupującego (w moim zapytania i uzyskać identyfikator przy użyciu DENSE_RANK). używać identyfikatora do ograniczenia wynik (paginacji)
* Przepraszam za mój zły język angielski
Witamy w StackOverflow, twoje pytanie jest wspaniałe, dużo kodu, projekt tabeli, przykładowe dane. Którą wersję SQL używasz? Są między nimi pewne różnice. – Yaroslav
Witaj Jarosławiu, dziękuję. Im używam serwera SQL 2008 R2 – Denitri