voglio ottenere questo tipo di risultato utilizzando MS SQLCome ottenere il numero di riga basata su campo unico e allineati secondo un altro campo
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
Il risultato è una combinazione di 3 Tabella
Tabella "Ricerca "che contiene tutti i dati di ricerca
------ TABLE Research------
- ResearchID Uniqueidentifier
- ResearchTitle text
- PublishedDate
Tabella 'Autore' che contiene tutti i dati docente
------ TABLE Author ------
- AuthorID varchar(20)
- AuthorName vachar(100)
E, tabella "ResearchAuthorMapping" che creano relazione tra "ricerca" e "Autore"
------ TABLE ResearchAuthorMapping------
- ResearchID uniqueidentifier
- AuthorID varchar(20)
Ecco la mia domanda finora
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
Fino ad ora, sono solo in grado di raggiungere questo
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
Un set di risultati che è ordinato da Research Titolo,
.210Ma, quello che voglio è i dati in ordine di data di pubblicazione, ma ottenere l'ID basa su
ResearchTitle/ResearchID raggruppamento (nella mia domanda io ottenere l'ID utilizzando DENSE_RANK). Io uso la ID per limitare il risultato (impaginazione)
* Ci scusiamo per il mio cattivo inglese
Benvenuti in StackOverflow, la tua domanda è ottima, molto codice, design della tabella, dati di esempio. Quale versione di SQL stai usando? Ci sono alcune differenze tra loro. – Yaroslav
Ciao Yaroslav, grazie .. Sto usando SQL server 2008 R2 – Denitri