If all you are interested in is the overall score of the survey, then you can add survey management to the report. Unfortunately, the comments are ntext, so they can't be used with distinct, and I haven't found a way to remove the distinct condition using a regular report.
You can create a SQL report that does what you want for the first part. Here is an example, just change the group name:
select
GroupName as [Team],
DisplayName as [Worker],
Process.ProcessEnded as [EndDate],
ServiceDeskIncidentManagement0.process_id as [IncidentID],
ServiceDeskSurveyData1.Score,
ServiceDeskSurveyData1.Quality_Of_Diagnosis,
ServiceDeskSurveyData1.Quality_Of_Solution,
ServiceDeskSurveyData1.Speed_Of_Service,
ServiceDeskSurveyData1.Overall_Quality,
ServiceDeskSurveyData1.Comments
from
ReportProcess as Process with (NOLOCK) inner join
ServiceDeskIncidentManagement as ServiceDeskIncidentManagement0 with (NOLOCK) on
((ServiceDeskIncidentManagement0.process_id = Process.ReportProcessID)) inner join
ReportProcessRelationship as ReportProcessRelationship1 with (NOLOCK) on
((ReportProcessRelationship1.ParentProcessID = Process.ReportProcessID)) inner join
ServiceDeskSurveyData as ServiceDeskSurveyData1 with (NOLOCK) on
((ServiceDeskSurveyData1.process_id = ReportProcessRelationship1.ChildProcessID)) inner join
[User] with (NOLOCK) on
((ServiceDeskIncidentManagement0.resolved_by_user_id = [User].UserID)) INNER JOIN
UserGroup with (NOLOCK) on
(([User].UserID = UserGroup.UserID)) INNER JOIN
[Group] with (NOLOCK) on
((UserGroup.GroupID = [Group].GroupID))
where
(Process.Result = 'Closed' or
Process.Result = 'Resolved' or
Process.Result = 'Completed') and
Score > 0 and GroupName = 'HR' and
DATEDIFF(DAY, ProcessEnded, GETDATE()) <= 365
order by ProcessEnded
For your second request, if you want to be able to enter the process id as a parameter, you won't be able to use a SQL report. For that, you can create a view that includes the survey data and Session ID, and then create a profile that uses that view. Then you can use the profile data in a standard report. Here is the view I use:
CREATE VIEW [dbo].[IncidentSurveyResults]
AS
SELECT ServiceDeskIncidentManagement0.process_id AS IncidentID, ServiceDeskIncidentManagement0.incident_name AS IncidentName,
ServiceDeskIncidentManagement0.incident_type AS IncidentType, ServiceDeskSurveyData1.score AS Score,
ServiceDeskSurveyData1.quality_of_diagnosis AS Quality_Of_Diagnosis, ServiceDeskSurveyData1.quality_of_solution AS Quality_Of_Solution,
ServiceDeskSurveyData1.speed_of_service AS Speed_Of_Service, ServiceDeskSurveyData1.overall_quality AS Overall_Quality,
Process.SessionID AS ProcessSessionID, CAST(ServiceDeskSurveyData1.comments AS nvarchar(max)) AS Comments, ServiceDeskSurveyData1.process_id AS SurveyID
FROM dbo.ReportProcess AS Process WITH (NOLOCK) INNER JOIN
dbo.ServiceDeskIncidentManagement AS ServiceDeskIncidentManagement0 WITH (NOLOCK) ON
ServiceDeskIncidentManagement0.process_id = Process.ReportProcessID INNER JOIN
dbo.ReportProcessRelationship AS ReportProcessRelationship1 WITH (NOLOCK) ON
ReportProcessRelationship1.ParentProcessID = Process.ReportProcessID INNER JOIN
dbo.ServiceDeskSurveyData AS ServiceDeskSurveyData1 WITH (NOLOCK) ON
ServiceDeskSurveyData1.process_id = ReportProcessRelationship1.ChildProcessID
WHERE (Process.Result = 'Closed' OR
Process.Result = 'Resolved' OR
Process.Result = 'Completed') AND (ServiceDeskSurveyData1.score > 0)
GO