Boa noite pessoal,
Tenho os seguintes selects:
- Select 1
SELECT ISNULL(CONVERT(varchar, S.SolData, 103), 00) + ' ' + ISNULL(CONVERT(varchar, S.SolData, 108), '') 'Data de Abertura', ISNULL(CONVERT(varchar, S.Solvencimento, 103), 00) + ' ' + ISNULL(CONVERT(varchar, S.Solvencimento, 108), '') 'Data de Vencimento', R.Usunome 'Responsavel', CASE S.SolStatus WHEN 9 THEN 'Concluído' ELSE 'Não iniciado' END 'Status', M.DsModulo 'Sistema' FROM Solicitacao S LEFT JOIN MacroProcesso MP ON MP.MacProcID = S.MacProcID LEFT JOIN Modulo M ON M.ModID = S.ModID LEFT JOIN usuario R ON R.usuid = S.UsuIDResponsavel WHERE MP.DsMacProcesso = 'TAREFA' AND S.SOLSTATUS IN (5, 0, 1)
- Select 2
SELECT R.Usunome 'Responsavel', COUNT(S.SolID) 'Qtd', RANK() OVER (ORDER BY COUNT(S.SolID) DESC) AS 'Rank' FROM Solicitacao S LEFT JOIN MacroProcesso MP ON MP.MacProcID = S.MacProcID LEFT JOIN Modulo M ON M.ModID = S.ModID LEFT JOIN usuario R ON R.Usuid = S.UsuIDResponsavel WHERE MP.DsMacProcesso = 'TAREFA' AND S.SOLdata BETWEEN (CONVERT(char(10), GETDATE(), 103) + ' 00:00:00') AND (CONVERT(char(10), GETDATE(), 103) + ' 23:59:59') GROUP BY R.Usunome
- Select 3
SELECT R.Usunome 'Responsavel', COUNT(S.SolID) 'Qtd', RANK() OVER (ORDER BY COUNT(S.SolID) DESC) AS 'Rank' FROM Solicitacao S LEFT JOIN MacroProcesso MP ON MP.MacProcID = S.MacProcID LEFT JOIN Modulo M ON M.ModID = S.ModID LEFT JOIN usuario R ON R.usuid = S.UsuIDResponsavel WHERE MP.DsMacProcesso = 'TAREFA' AND S.SolDataFechamento BETWEEN (CONVERT(char(10), GETDATE(), 103) + ' 00:00:00') AND (CONVERT(char(10), GETDATE(), 103) + ' 23:59:59') AND S.SolDataFechamento IS NOT NULL GROUP BY R.Usunome
- Select 4
SELECT R.Usunome 'Responsavel', AVG(CONVERT(decimal, DATEDIFF(DAY, S.SolData, S.SolDataFechamento))) 'MED Dias', (CONVERT(time(0), (CAST(FLOOR(AVG(S.TempoGastoTotal) / 60) AS varchar) + ':' + RIGHT('00' + CAST(FLOOR((AVG(S.TempoGastoTotal) % 60)) AS varchar), 2)), 120)) 'MED HHMMSS', RANK() OVER (ORDER BY AVG(CONVERT(decimal, DATEDIFF(DAY, S.SolData, S.SolDataFechamento))) ASC) AS 'Rank' FROM Solicitacao S LEFT JOIN MacroProcesso MP ON MP.MacProcID = S.MacProcID LEFT JOIN Modulo M ON M.ModID = S.ModID LEFT JOIN usuario R ON R.usuid = S.UsuIDResponsavel WHERE MP.DsMacProcesso = 'TAREFA' AND S.SolDataFechamento BETWEEN (CONVERT(char(10), GETDATE() - DAY(GETDATE()) + 1, 103) + ' 00:00:00') AND (DATEADD(DD, -DAY(DATEADD(M, 1, GETDATE())), DATEADD(M, 1, GETDATE())) + ' 23:59:59') AND S.SolDataFechamento IS NOT NULL GROUP BY R.Usunome
- Select 5
SELECT R.Usunome 'Responsavel', COUNT(S.SolID) 'Qtd', RANK() OVER (ORDER BY COUNT(S.SolID) DESC) AS 'Rank' FROM Solicitacao S LEFT JOIN Complemento Comp ON S.SolID = Comp.SolID LEFT JOIN TipoComp TpComp ON TpComp.CompID = Comp.CompID LEFT JOIN MacroProcesso MP ON MP.MacProcID = S.MacProcID LEFT JOIN Modulo M ON M.ModID = S.ModID LEFT JOIN usuario R ON R.usuid = S.UsuIDResponsavel WHERE MP.DsMacProcesso = 'TAREFA' AND Comp.CompDesc = 'SIM' AND S.SolDataFechamento BETWEEN (CONVERT(char(10), GETDATE() - DAY(GETDATE()) + 1, 103) + ' 00:00:00') AND (DATEADD(DD, -DAY(DATEADD(M, 1, GETDATE())), DATEADD(M, 1, GETDATE())) + ' 23:59:59') AND S.SolDataFechamento IS NOT NULL GROUP BY R.Usunome
O que eu gostaria de fazer é criar uma única tabela com o resultado desses selects, exemplo:
'Responsavel SQL1' 'Data de Abertura SQL1' 'Data de Vencimento SQL1' 'Qtd SQL2' ''Rank SQL2' 'Qtd SQL3' ''Rank SQL3' e assim por diante.
Caso em um retorno de select não contenha informação para o 'Responsavel' a coluna fica varia.
É possível efetuar este tipo de operação?
Obrigad