Могу ли я сгруппировать несколько хранимых процедур, основанных на столбце, в новом процессе? чтобы избежать дублирования результатов? - PullRequest
0 голосов
/ 15 июня 2019

Цель состоит в том, чтобы получить один результат из этих трех хранимых процедур, сгруппировав их по идентификатору, чтобы избежать дублирования!

У меня три хранимые процедуры, они возвращают одни и те же таблицы с разными результатами на основе логики,Я создал.Я застрял на том, как отфильтровать результаты, чтобы избежать дублирования, и вернуть одну таблицу со всеми из них (отфильтрованные на основе Id Col).

ALTER  PROC [dbo].[Recommendation]
          @SurveyInstanceId INT

AS
/*
        DECLARE
            @SurveyInstanceId INT = 74

        EXECUTE [dbo].[recommendation]
                  @SurveyInstanceId 
*/


EXECUTE [dbo].[Resources_Question10Answers]
@SurveyInstanceId 

EXECUTE dbo.Resources_Question11Answers
@SurveyInstanceId

EXECUTE [dbo].[Resources_Question1Answers] 
@SurveyInstanceId

1 Ответ

3 голосов
/ 16 июня 2019

Вы можете вставить результаты хранимой процедуры во временную таблицу или табличную переменную, а затем отправить результаты запроса из этой таблицы клиенту.

например:

ALTER  PROC [dbo].[Recommendation]
          @SurveyInstanceId INT

AS
/*
        DECLARE
            @SurveyInstanceId INT = 74

        EXECUTE [dbo].[recommendation]
                  @SurveyInstanceId 
*/
begin
  set nocount on;
  declare @results table (id int, ...)

  insert into @results
  EXECUTE [dbo].[Resources_Question10Answers]
  @SurveyInstanceId 

  insert into @results
  EXECUTE dbo.Resources_Question11Answers
  @SurveyInstanceId

  insert into @results
  EXECUTE [dbo].[Resources_Question1Answers] 
  @SurveyInstanceId

  select id, ...
  from @results 
  group by id
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...