locked
execução de query dá erro de permissão? RRS feed

  • Pergunta

  • Bom dia,

     

    Eu preciso de uma ajuda vossa.

     

    Então é assim, tenho uma query, que quando estou logado com o user sa ela corre e devolve os valores esperados. Quando estou com outro user, ela nao funciona e dá erro.

     

    Nota: Esta query não foi feita por mim, esté num projecto que me foi passado para as mãos.

     

    A query é a seguinte:

     

    select colaboradores.codigo,nome , 'ALAGML' = count( CASE replace(titulo,' - ',char(10))  WHEN 'ALA
    GML' THEN isnull(nivel,0) END), 'Esp.Gás' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Esp.
    Gás' THEN isnull(nivel,0) END), 'Esp.Lub' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Esp.
    Lub' THEN isnull(nivel,0) END), 'Esp.OP' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Esp.
    OP' THEN isnull(nivel,0) END), 'Esp.SAC' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Esp.
    SAC' THEN isnull(nivel,0) END), 'Financeira' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Financeira' THEN isnull(nivel,0) END), 'Industria Marinha' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Industria Marinha' THEN isnull(nivel,0) END), 'Operações' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Operações' THEN isnull(nivel,0) END), 'Propel' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Propel' THEN isnull(nivel,0) END), 'RedePostos' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Rede
    Postos' THEN isnull(nivel,0) END), 'RedeTécnica' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Rede
    Técnica' THEN isnull(nivel,0) END), 'RedeVD' = count( CASE replace(titulo,' - ',char(10))  WHEN 'Rede
    VD' THEN isnull(nivel,0) END), 'SAQQualidade' = count( CASE replace(titulo,' - ',char(10))  WHEN 'SAQ
    Qualidade' THEN isnull(nivel,0) END) from (acessos right join colaboradores on acessos.codigo_colaborador=colaboradores.codigo) left join direccoessectores on direccoessectores.codigo=acessos.codigo_direccaosector group by colaboradores.codigo,nome

    O que interessa realmente para este problema é o seguinte, ele dá erro no 'END'

     

    Alguma ideia?

    quarta-feira, 9 de maio de 2007 09:30

Todas as Respostas

  •  

     

    seu case esta errado veja o exemplo

     

     
     Select 'ALAGML' = Count(Case When replace(titulo,' - ',char(10)) = 'ALA GML' Then isnull(nivel,0) End)

     

    o when tem que vir logo depois da instrucao case .;

     

    altere e teste por favor. qulquer coisa retorne

     

    Abs;

    quarta-feira, 9 de maio de 2007 10:27
  •  

     

    Isso mesmo.

     

     

    quarta-feira, 9 de maio de 2007 11:46
    Moderador