none
duvida com pivot RRS feed

  • Pergunta

  • boa tarde quero pedir a ajudar de alguem que possa ajudar eu a solucionar uma instrução de sql com pivot, abaixo segue o script

     

    CREATE PROCEDURE [dbo].[GeraRelatorio] (@codTurma int) as

     

    DECLARE @TOTALAULA INT

    SET @TOTALAULA = (select sum(TOTALAULA) from TBAULA  where CODAULA  IN (SELECT CODAULA FROM vwLista WHERE CODTURMA = @codTurma))

     

    select distinct (nome) as NOME,

    [1] as '1/6/2011',

    (select sum(TOTALTALTA) from vwLista where CPF = p.CPF and CODTURMA = p.CODTURMA) as [FALTAS],

    @TOTALAULA AS [AULAS],

    CONVERT(VARCHAR,(100-(select sum(TOTALTALTA) from vwLista where CPF = P.CPF and CODTURMA = p.CODTURMA)*100/@TOTALAULA)) + ' %' AS FREQ ,

    CASE WHEN (100-(select sum(TOTALTALTA) from vwLista where CPF = P.CPF and CODTURMA = p.CODTURMA)*100/@TOTALAULA) >= 75 THEN 'AP' ELSE 'RP' END AS SIT

    from vwLista as p PIVOT (SUM(TOTALTALTA)FOR cpf IN ([1])) as pvt order by pvt.NOME

     

    procurei aki no forum e nao consegui achar nenhuma solução, obrigado

    terça-feira, 22 de novembro de 2011 19:59

Todas as Respostas

  • William,

    Mas qual é o problema? O que esta acontencendo de errado?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    terça-feira, 22 de novembro de 2011 20:25
  • o meu problema é que eu nao consigo criar a procedure
    quarta-feira, 23 de novembro de 2011 10:23
  • Olá William, encaminhe o erro que ocorre pra ti, eu copiei teu código executei e compilou normalmente.

    O erro é na execução ou na criação?

    quarta-feira, 23 de novembro de 2011 12:47
  • o erro acontece na criação da procedure, segue erro abaixo

     

    Mensagem 4104, Nível 16, Estado 1, Procedimento GeraRelatorio, Linha 12

    O identificador de várias partes "p.CPF" não pôde ser associado.

    Mensagem 4104, Nível 16, Estado 1, Procedimento GeraRelatorio, Linha 12

    O identificador de várias partes "p.CODTURMA" não pôde ser associado.

    Mensagem 4104, Nível 16, Estado 1, Procedimento GeraRelatorio, Linha 16

    O identificador de várias partes "P.CPF" não pôde ser associado.

    Mensagem 4104, Nível 16, Estado 1, Procedimento GeraRelatorio, Linha 16

    O identificador de várias partes "p.CODTURMA" não pôde ser associado.

    Mensagem 4104, Nível 16, Estado 1, Procedimento GeraRelatorio, Linha 19

    O identificador de várias partes "P.CPF" não pôde ser associado.

    Mensagem 4104, Nível 16, Estado 1, Procedimento GeraRelatorio, Linha 19

    O identificador de várias partes "p.CODTURMA" não pôde ser associado.

    quarta-feira, 23 de novembro de 2011 19:32
  • William,

    Veja a relação de erros que o SQL Server esta identificando nas linhas de código da sua procedure, erros na linha: 12, 16 e 19

    Faça uma análise nas linhas que possuem a função Convert e o Operador Lógico Condicional Case.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    domingo, 27 de novembro de 2011 00:19