none
Contar Caracteres da Colunas RRS feed

  • Pergunta

  •  

    Olá Galera!

     

    Tenho uma tabela com as colunas Nome do funcionário e T1, T2, T3 até T30 onde são incluídos dados "OK" e "NOK".

     

    Preciso fazer um relatório destas colunas.

     

    A duvida é como contar todos "OK" e "NOK" de cada funcionário do T1 ao T30.

     

    Obrigado.

    sexta-feira, 10 de outubro de 2008 12:25

Respostas

  • Boa Tarde,

     

    A menos que você esteja usando algum SQL diferente do 2005, pode ser que não funcione.

    Eu testei meu código no SQL Server 2005 e funcionou.

     

    [ ]s,

     

    Gustavo

     

    sexta-feira, 10 de outubro de 2008 16:58

Todas as Respostas

  • Bom Dia,

     

    Até que dá para resolver só no SELECT convencional, mas é uma ótima oportunidade para testar os novos recursos do 2005. Veja o exemplo abaixo:

     

    Code Snippet

    CREATE TABLE #T (ID INT,

    T01 CHAR(3), T02 CHAR(3),

    T03 CHAR(3), T04 CHAR(3))

     

    INSERT INTO #T VALUES (1,'OK','OK','OK','OK')

    INSERT INTO #T VALUES (2,'NOK','NOK','NOK','NOK')

    INSERT INTO #T VALUES (3,'OK','NOK','NOK','OK')

    INSERT INTO #T VALUES (4,'OK','NOK','OK','OK')

    INSERT INTO #T VALUES (5,'NOK','NOK','NOK','OK')

     

    SELECT ID,

    SUM(CASE VALOR WHEN 'OK' THEN 1 ELSE 0 END) AS OK,

    SUM(CASE VALOR WHEN 'NOK' THEN 1 ELSE 0 END) AS NOK

    FROM

    (SELECT ID, T01, T02, T03, T04 FROM #T) Q

    UNPIVOT

    (Valor FOR Coluna IN (T01, T02, T03, T04)) UPVT

    GROUP BY ID

     

    [ ]s,

     

    Gustavo

    sexta-feira, 10 de outubro de 2008 12:53
  • Gustavo obrigado, mas tenho que confessar que não entendi.

    Tentei no SQL e não funcionou.

    Tem como me explicar?

    Sou um novato em programação?

    Obrigado

     

    sexta-feira, 10 de outubro de 2008 14:30
  • Boa Tarde,

     

    A menos que você esteja usando algum SQL diferente do 2005, pode ser que não funcione.

    Eu testei meu código no SQL Server 2005 e funcionou.

     

    [ ]s,

     

    Gustavo

     

    sexta-feira, 10 de outubro de 2008 16:58