SELECT TOP 50 jobDB.num AS JobNumber, DateAdd(minute, 570, jobDB.entered) AS CreatedDate, DateAdd(minute, 570, jobDB.closed) AS ClosedDate, person.uniqueId AS UserID, NEWID() AS Random FROM jobDB LEFT OUTER JOIN person ON jobDB.contactId=person.personID WHERE jobDB.status=N'Closed' AND DateAdd(minute, 570, jobDB.entered) >= DATEADD(d, -28, GETDATE()) AND DateAdd(minute, 570, jobDB.closed) >= DATEADD(d, -7, GETDATE()) AND person.uniqueId IS NOT NULL ORDER BY Random
;WITH NewIDAllRecords AS ( SELECT jobDB.num AS JobNumber, DateAdd(minute, 570, jobDB.entered) AS CreatedDate, DateAdd(minute, 570, jobDB.closed) AS ClosedDate, person.uniqueId AS UserID, NEWID() AS Random FROM jobDB LEFT OUTER JOIN person ON jobDB.contactId=person.personID WHERE jobDB.status=N'Closed' AND DateAdd(minute, 570, jobDB.entered) >= DATEADD(d, -28, GETDATE()) AND DateAdd(minute, 570, jobDB.closed) >= DATEADD(d, -7, GETDATE()) AND person.uniqueId IS NOT NULL ), SequenceAllUserRecords AS ( SELECT ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY Random) AS Seq, JobNumber, CreatedDate, ClosedDate, UserID, Random FROM NewIDAllRecords )SELECT TOP 50 JobNumber, CreatedDate, ClosedDate, UserIDFROM SequenceAllUserRecordsWHERE Seq = 1ORDER BY Random