Я новичок в SSIS и сложные операторы SQL.Я пытаюсь объединить свой запрос, который возвращает людей с датой за последний месяц, но затем взять эти результаты и получить 5 действительно случайных строк из этого.
Мой запрос до того, как я получу 5 случайных строк:
SELECT
DISTINCT
isnull(dbo.fnRemovePatternFromString(p.Last_Name, '%[,-.'']%'), '') as [Last]
,isnull(dbo.fnRemovePatternFromString(p.First_Name, '%[,-.'']%'), '') as [First]
,isnull(dbo.fnRemovePatternFromString(p.Middle_Initial, '%[,-.'']%'), '') as [Middle]
,isnull(pf.Date_on_staff, '') as [Date on Staff]
,pf.Status_from_date
FROM person p
inner JOIN person_facilities pf ON p.Person_ID = pf.Person_ID
LEFT JOIN usr_FacultyMember fm ON p.Person_ID = fm.person_id
WHERE
pf.FacCode in ('s', 'H', 'E')
and
(
pf.Status_from_date >= (getdate()-31 )
and pf.Status_from_date < getdate()
)
Возвращает около 300 строк, но он будет меняться каждый месяц.
Исходя из этого результата, янужно получить 5 случайных строк из результатов.Это не может быть верхняя часть результатов или 5 строк в 1/5 результатов.Я хотел бы избежать создания представления для сохранения результатов в виде в этом примере .
Пример таблицы не похож на то, что мне нужно, так как это не случайно.
Я пытаюсь применить этот пример , поскольку он кажется случайным, но мне нужно контролировать количество строк в выводе. У этого есть аналогичный ответ.Эта часть мне нравится из этих двух примеров:
(abs(cast((binary_checksum(*) * rand()) as int)) % 100) <10
Я не уверен, как управлять выводом, поэтому я получаю только 5 строк из этого.Я думал о создании переменной и сохранении того, что должно быть 10, чтобы вернуть 5 строк, но я не уверен, как это сделать.есть идеи?
Я искал переменную для подсчета количества строк , но я не уверен, что я буду с ней делать или как я буду применять ее в моей строке ранда.
Я думаю, что для этого не обязательно должен быть один SQL-запрос, но я все еще не уверен, как это сделать в ssis.Если мне нужно создать представление, я могу, но я бы предпочел не загромождать свою базу данных представлениями.
Любая помощь в решении этого сложного вопроса будет принята с благодарностью.
Обновление: этоотличается от случайное число на sql-без-использования-newid , потому что я не исключаю порядок с помощью newid, я просто пытаюсь найти случайные 5 возвращаемых строк.