Tutaj w mojej aplikacji mam problemy i listę osób, które stanęły przed nimi. Dziś mam zdobycie wszystkich ludzi poprzez STUFF
nazwy funkcji jak poniżej próbki:Jak odzyskać licznik podobny do Facebooka za pomocą SQL Server?
select problem.*,
(
STUFF
(
(
SELECT TOP(3)', ' + person.name
FROM
problem_person
LEFT JOIN person ON problem_person.personId = person.Id
WHERE
problem_person.problemId = problem.Id
order by person.name
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 1, ''
)
) as peopleWhoFaced from problem
Jednak, gdy wiele osób zmierzyć się z tym samym problemem, peopleWhoFaced
pole dostaje ogromne. Jak odzyskać coś w rodzaju Person 1, Person 2 and 36 more faced the problem
? Wiem, że mogę to zrobić na poziomie interfejsu API, ale staram się tego unikać i utrzymywać kod API w czystości.
Jak mogę to zrobić? Czy będę potrzebował kursora lub czegoś w tym stylu?
Z góry dziękuję.
Dziękuję za odpowiedź Dan! Sprawdzę to! –
Odpowiedź jest niepoprawna, ale wskazała mi właściwy kierunek. To nie jest w pełni poprawne, ponieważ '@ count' zawsze zwraca tę samą liczbę osób (w moim przypadku 144 osoby), nawet gdy tylko 4 napotkało problem (poprawna wartość). –
Widzę, co mówisz - zaktualizowaną odpowiedź, aby dołączyć właściwą tabelę/warunki. –