Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Deficiencias do funcionário


Posts Recomendados


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.841
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.572
  • Conteúdo Resolvido:  0
  • Dias Ganho:  194
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Android

Vi que em algumas consultas, quando o cliente precisa saber as deficiências de uma pessoa, a sentença SQL está como o exemplo abaixo:

	SELECT A.NOME,
DEFICIENCIA = CASE WHEN A.DEFICIENTEAUDITIVO = '1' AND A.DEFICIENTEFALA = '0' AND A.DEFICIENTEFISICO = '0'
                    AND A.DEFICIENTEMENTAL = '0' AND A.DEFICIENTEVISUAL = '0' THEN 'Deficiente Auditivo'
                    WHEN A.DEFICIENTEAUDITIVO = '0' AND A.DEFICIENTEFALA = '1' AND A.DEFICIENTEFISICO = '0'
                    AND A.DEFICIENTEMENTAL = '0' AND A.DEFICIENTEVISUAL = '0' THEN 'Deficiente Fala'
                    WHEN A.DEFICIENTEAUDITIVO = '0' AND A.DEFICIENTEFALA = '0' AND A.DEFICIENTEFISICO = '1'
                    AND A.DEFICIENTEMENTAL = '0' AND A.DEFICIENTEVISUAL = '0' THEN 'Deficiente Físico'
                    WHEN A.DEFICIENTEAUDITIVO = '0' AND A.DEFICIENTEFALA = '0' AND A.DEFICIENTEFISICO = '0'
                    AND A.DEFICIENTEMENTAL = '1' AND A.DEFICIENTEVISUAL = '0' THEN 'Deficiente Mental'
                    WHEN A.DEFICIENTEAUDITIVO = '0' AND A.DEFICIENTEFALA = '0' AND A.DEFICIENTEFISICO = '0'
                    AND A.DEFICIENTEMENTAL = '0' AND A.DEFICIENTEVISUAL = '1' THEN 'Deficiente Visual'
                    ELSE '' END
FROM PPESSOA A (NOLOCK)
	

A questão, é que neste modelo o retorno dos dados é totalmente incompleto, pois pode acontecer de, lá no cadastro, uma pessoa ter mais de uma deficiência. Assim, a consulta acima só traz a informação abaixo:

NOME    | DEFICIENCIA
Maria    | Física
José      | Física
Pedro    | Fala

Pensando nisso, criamos a seguinte view:

	CREATE VIEW V_CONSTANT_DEFICIENCIA AS
SELECT ID = 1, NOME = 'Física' UNION
SELECT ID = 2, NOME = 'Auditiva' UNION
SELECT ID = 3, NOME = 'Fala' UNION
SELECT ID = 4, NOME = 'Visual' UNION
SELECT ID = 5, NOME = 'Mental' UNION
SELECT ID = 6, NOME = 'Intelectual'
	

Assim, a nossa consulta poderá ser montada da seguinte forma:

SELECT A.NOME,
DEFICIENCIA =     STUFF((SELECT ',' + X.NOME
        FROM V_CONSTANT_DEFICIENCIA X
        WHERE X.ID IN (    A.DEFICIENTEAUDITIVO,
                A.DEFICIENTEFALA,
                A.DEFICIENTEFISICO,
                A.DEFICIENTEINTELECTUAL,
                A.DEFICIENTEMENTAL)
        FOR XML PATH('')),1,1,'')
	FROM PPESSOA A (NOLOCK)
	

E o resultado será:

NOME    | DEFICIENCIA
Maria    | Física, Auditiva
José      | Física
Pedro    | Fala, Auditiva, Visual

 

Espero que tenha sido útil!

Ilano Caldas - MDI Soluções

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.841
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.572
  • Conteúdo Resolvido:  0
  • Dias Ganho:  194
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Android

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.