none
Transformar Linhas em Colunas RRS feed

  • Pergunta

  • PessoALL,

    Tenho uma tabela (TB_AV) com os seguintes campos: NOME_INSCRITO, TOR_NOME, TOR_INSC_NOTA e TOR_INSC_PONTOS.

    No SQL, a tabela fica assim:

    NOME_INSCRITO TOR_NOME TOR_INSC_NOTA TOR_INSC_PONTOS
    ALADIM 1ª ETAPA 7.15 8
    ALADIM 2ª ETAPA 6.50 1
    ALADIM 3ª ETAPA 6.00 12
    ALADIM 4ª ETAPA 6.40 8
    ALECRIM 1ª ETAPA 3.00 1
    ANASTACIO 2ª ETAPA 6.00 4
    ANASTACIO 3ª ETAPA 0.00 0
    ANJO NEGRO 1ª ETAPA 6.90 2
    ANJO NEGRO 2ª ETAPA 6.06 0
    ARROJADO 3ª ETAPA 3.4 2
    BAHREIN  1ª ETAPA 0.00 0
    BAHREIN  3ª ETAPA 5.75 4
    BARÃO 4ª ETAPA 0.00 0
    BIG BOY 1ª ETAPA 7.90 21
    BIG BOY 2ª ETAPA 0.00 0
    BIG BOY 4ª ETAPA 0.00 0

    Existe alguma maneira pra que ela fique em Colunas?

    Tipo Assim:

    NOME_INSCRITO 1ª ETAPA 2ª ETAPA 3ª ETAPA 4ª ETAPA MÉDIA SOMA
    ALADIM 7.15 6.50 6.00 6.40 6.51 26.05
    ANASTACIO   6.0 0.0   1.50 6.00
    ANJO NEGRO 6.90 6.06     3.24 12.96
    ARROJADO     3.4   0.85 3.40
    BAHREIN  0.00   5.75   1.44 5.75
    BARÃO       0.00 - -
    BIG BOY 7.90 0.00   0.00 1.98 7.90

    Espero que entendam.

    Obrigado

    terça-feira, 21 de novembro de 2017 15:43

Respostas

  • veja se os nomes estão todos corretos, ou faça um insert into na variável table, ou ainda poste o resultado de um select na sua view.

    Wesley Neves - Brasilia-DF

     
    https://wesleyneves.wordpress.com/
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"






    Wesley Neves

    • Marcado como Resposta Samfera sexta-feira, 24 de novembro de 2017 20:27
    quinta-feira, 23 de novembro de 2017 10:55

Todas as Respostas

  • Boa tarde , caso sua tabela vai ate a 4ª ETAPA , acredito que isso resolva , caso não temos outra alterativa com Pivot Dinamico.

    opção 1

    DECLARE @Tabela TABLE
    (
        NOME_INSCRITO VARCHAR(100),
        TOR_NOME VARCHAR(100),
        TOR_INSC_NOTA DECIMAL(18, 2),
        TOR_INSC_PONTOS INT
    );
    INSERT INTO @Tabela
    (
        NOME_INSCRITO,
        TOR_NOME,
        TOR_INSC_NOTA,
        TOR_INSC_PONTOS
    )
    VALUES
    ('ALADIM', '1ª ETAPA', 7.15, 8),
    ('ALADIM', '2ª ETAPA', 6.50, 1),
    ('ALADIM', '3ª ETAPA', 6.00, 12),
    ('ALADIM', '4ª ETAPA', 6.40, 8),
    ('ALECRIM', '1ª ETAPA', 3.00, 1),
    ('ANASTACIO', '2ª ETAPA', 6.00, 4),
    ('ANASTACIO', '3ª ETAPA', 0.00, 0),
    ('ANJO NEGRO', '1ª ETAPA', 6.90, 2),
    ('ANJO NEGRO', '2ª ETAPA', 6.06, 0),
    ('ARROJADO', '3ª ETAPA', 3.4, 2),
    ('BAHREIN', '1ª ETAPA', 0.00, 0),
    ('BAHREIN', '3ª ETAPA', 5.75, 4),
    ('BARÃO', '4ª ETAPA', 0.00, 0),
    ('BIG BOY', '1ª ETAPA', 7.90, 21),
    ('BIG BOY', '2ª ETAPA', 0.00, 0),
    ('BIG BOY', '4ª ETAPA', 0.00, 0);
    
    
    
    WITH Dados
    AS (SELECT t.NOME_INSCRITO,
               t.TOR_NOME,
               TOR_INSC_NOTA = SUM(t.TOR_INSC_NOTA),
               TOR_INSC_PONTOS = SUM(t.TOR_INSC_PONTOS)
        FROM @Tabela AS t
        GROUP BY t.NOME_INSCRITO,
                 t.TOR_NOME
       ),
         Resumo
    AS (SELECT Dados.NOME_INSCRITO,
               [1ª ETAPA] = SUM(   CASE
                                       WHEN Dados.TOR_NOME = '1ª ETAPA' THEN
                                           Dados.TOR_INSC_NOTA
                                       ELSE
                                           0
                                   END
                               ),
               [2ª ETAPA] = SUM(   CASE
                                       WHEN Dados.TOR_NOME = '2ª ETAPA' THEN
                                           Dados.TOR_INSC_NOTA
                                       ELSE
                                           0
                                   END
                               ),
               [3ª ETAPA] = SUM(   CASE
                                       WHEN Dados.TOR_NOME = '3ª ETAPA' THEN
                                           Dados.TOR_INSC_NOTA
                                       ELSE
                                           0
                                   END
                               ),
               [4ª ETAPA] = SUM(   CASE
                                       WHEN Dados.TOR_NOME = '4ª ETAPA' THEN
                                           Dados.TOR_INSC_NOTA
                                       ELSE
                                           0
                                   END
                               )
        FROM Dados
        GROUP BY Dados.NOME_INSCRITO
       )
    SELECT R.NOME_INSCRITO,
           R.[1ª ETAPA],
           R.[2ª ETAPA],
           R.[3ª ETAPA],
           R.[4ª ETAPA],
           MÉDIA = CAST(((R.[1ª ETAPA] + R.[2ª ETAPA] + R.[3ª ETAPA] + R.[4ª ETAPA]) / 4) AS DECIMAL(18, 2)),
           Soma = CAST(((R.[1ª ETAPA] + R.[2ª ETAPA] + R.[3ª ETAPA] + R.[4ª ETAPA])) AS DECIMAL(18, 2))
    FROM Resumo R;
    
    
    
    
    
    
    

    Wesley Neves - Brasilia-DF

     
    https://wesleyneves.wordpress.com/
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"



    Wesley Neves

    terça-feira, 21 de novembro de 2017 16:41
  • 

    Opa Wesley,

    Na verdade usei só até a 4ª ETAPA só pra ficar fácil o entendimento. Temos mais etapas no processo.

    Outra coisa Wesley,
    Após substituir o nome da tabela, quando rodo a query, as notas ficam zeradas. Rodo a partir do WICH com o nome da minha tabela.

    Percebi que esqueci de por um campo na tabela que vai ser crucial para o resultado. Como preciso do agrupamento do NOME_INSCRITO, vi no resultado que ficou certinho o agrupamento. Porém, tem NOME_INSCRITO que participa de duas ou mais CATEGORIA (Foi o campo que esqueci).

    Só pra ilustrar novamente com o campo CATEGORIA:

    NOME_INSCRITO TOR_CATEGORIA TOR_NOME TOR_INSC_NOTA TOR_INSC_PONTOS
    ALADIM COM 1ª ETAPA 7.15 8
    ALADIM SEM 2ª ETAPA 6.50 1
    ALADIM SEM 3ª ETAPA 6.00 12
    ALADIM COM 4ª ETAPA 6.40 8
    ALECRIM SEM 1ª ETAPA 3.00 1
    ANASTACIO SEM 2ª ETAPA 6.00 4
    ANASTACIO COM 3ª ETAPA 0.00 0
    ANJO NEGRO COM 1ª ETAPA 6.90 2
    ANJO NEGRO COM 2ª ETAPA 6.06 0
    ARROJADO SEM 3ª ETAPA 3.4 2
    BAHREIN  COM 1ª ETAPA 0.00 0
    BAHREIN  COM 3ª ETAPA 5.75 4
    BARÃO COM 4ª ETAPA 0.00 0
    BIG BOY COM 1ª ETAPA 7.90 21
    BIG BOY COM 2ª ETAPA 0.00 0
    BIG BOY SEM 4ª ETAPA 0.00 0


    Consigo agrupar o NOME_INSCRITO de acordo com a CATEGORIA? Pra ficar assim:

    NOME_INSCRITO TOR_CATEGORIA 1ª ETAPA 2ª ETAPA 3ª ETAPA 4ª ETAPA MÉDIA SOMA
    ALADIM COM         7,15             6,40     3,39   13,55
    ALADIM SEM           6,50         6,00       3,13   12,50
    ALECRIM SEM         3,00           0,75     3,00
    ANASTACIO COM           6,00             -         1,50     6,00
    ANASTACIO N/A                 -            -  
    ANJO NEGRO COM         6,90         6,06         3,24   12,96
    ARROJADO SEM             3,40       0,85     3,40
    BAHREIN  COM             -             5,75       1,44     5,75
    BARÃO COM                   -           -            -  
    BIG BOY COM         7,90             -           1,98     7,90
    BIG BOY SEM                   -           -            -  


    Desculpa ter esquecido o campo. Mas só percebi depois que vi tudo agrupadinho.

    Obrigado

    • Editado Samfera terça-feira, 21 de novembro de 2017 18:26
    terça-feira, 21 de novembro de 2017 17:08
  • Samfera,

    Está faltando o conceito de normalização de banco de dados, se você tem informações redundantes ou adição de categorias de forma dinâmica, você precisa criar outra tabela, isso é conhecida como entidade fraca e forte. Para lhe contextualizar melhor sobre normalização e relacionamento entre tabelas: Descrição dos conceitos básicos de normalização de banco de dados

    • Dados redundantes desperdiçam espaço em disco e criam problemas de manutenção. Se os dados que existem em mais de um local devem ser alterados, os dados devem ser alterados da mesma maneira em todos os locais. Uma alteração de endereço de cliente é muito mais fácil de implementar se esses dados forem armazenados somente na tabela clientes e em nenhum outro lugar no banco de dados.

    Nesse caso, você precisa criar uma tabela chamada etapas e ir adicionando os valores de cada etapa lá linkando o ID para essa tabela já existente, sendo assim você consegue trabalhar com quantas etapas forem necessárias, existem vários videos na internet que ensinam como normalizar um banco de dados, sugiro a leitura e aprofundamento nesse tópico.

    Qualquer dúvida, estou à disposição.



    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    quarta-feira, 22 de novembro de 2017 20:18
  • Oba Roberto...
    Não são informações redundantes, é uma única tabela que eu gostaria de mostrar colunada. Porém, O nome pode aparecer em 2 categorias. O exemplo que o Wesley deu funciona. A questão é que no agrupamento do nome junta os nome independente da categoria.


    quarta-feira, 22 de novembro de 2017 20:22
  • Samfera,

    Se você não tem controle da quantidade de etapas, sendo isso dinâmico, e dados se repetem, conforme você mencionou o nome, falta normalização.


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 22 de novembro de 2017 20:26
  • Tenho sim. São 8 etapas. O "X" da questão é o agrupamento por nome.

    Se o usuário aparecer em 2 categorias, o nome dele tem que aparecer 2 vezes.
    Tipo assim:

    declare @TB_Inscritos table ( Insc_ID int, Evento_ID int, Categoria varchar(30), Nome varchar(40), Nota numeric(9, 2) ); insert into @TB_Inscritos values (1, 1, 'COM', 'PAULO', 7), (2, 1, 'SEM', 'ANA', 5), (3, 1, 'COM', 'MARCOS', 8), (4, 1, 'SEM', 'PEDRO', 3), (5, 2, 'SEM', 'PAULO', 4), (6, 2, 'COM', 'ANA', 9), (7, 2, 'SEM', 'MARCOS', 2), (8, 3, 'COM', 'PAULO', 7), (9, 2, 'SEM', 'PEDRO', 6), (10, 2, 'SEM', 'PEDRO', 5), (11, 2, 'COM', 'ANA', 4), (12, 3, 'SEM', 'MARCOS', 8); with CTE_RN as ( select *, ROW_NUMBER() OVER(PARTITION BY Nome ORDER BY Nota) as RN from @TB_Inscritos ) select MIN(Insc_ID) as Insc_ID, MIN(Evento_ID) as Evento_ID, Nome, Categoria, AVG(Nota) as Media from CTE_RN where RN > 1 group by Nome, Categoria order by Categoria, Media

    quarta-feira, 22 de novembro de 2017 20:47
  • Tenho sim. São 8 etapas. O "X" da questão é o agrupamento por nome.

    veja se isso te atende, caso precise adicionar mais etapas , e só seguir a mesma logica.

    DECLARE @Tabela TABLE
    (
        NOME_INSCRITO VARCHAR(100),
        TOR_CATEGORIA  VARCHAR(100),
        TOR_NOME VARCHAR(100),
        TOR_INSC_NOTA DECIMAL(18, 2),
        TOR_INSC_PONTOS INT
    );
    INSERT INTO @Tabela
    (
        NOME_INSCRITO,
    	TOR_CATEGORIA,
        TOR_NOME,
        TOR_INSC_NOTA,
        TOR_INSC_PONTOS
    )
    VALUES
    ('ALADIM','COM', '1ª ETAPA', 7.15, 8),
    ('ALADIM','SEM', '2ª ETAPA', 6.50, 1),
    ('ALADIM','SEM', '3ª ETAPA', 6.00, 12),
    ('ALADIM','COM', '4ª ETAPA', 6.40, 8),
    ('ALECRIM','SEM', '1ª ETAPA', 3.00, 1),
    ('ANASTACIO','SEM', '2ª ETAPA', 6.00, 4),
    ('ANASTACIO','COM', '3ª ETAPA', 0.00, 0),
    ('ANJO NEGRO','COM', '1ª ETAPA', 6.90, 2),
    ('ANJO NEGRO','COM', '2ª ETAPA', 6.06, 0),
    ('ARROJADO','SEM', '3ª ETAPA', 3.4, 2),
    ('BAHREIN', 'COM','1ª ETAPA', 0.00, 0),
    ('BAHREIN','COM', '3ª ETAPA', 5.75, 4),
    ('BARÃO','COM', '4ª ETAPA', 0.00, 0),
    ('BIG BOY','COM', '1ª ETAPA', 7.90, 21),
    ('BIG BOY','COM', '2ª ETAPA', 0.00, 0),
    ('BIG BOY','SEM', '4ª ETAPA', 0.00, 0);
    
    
    
    WITH Dados
    AS (SELECT t.NOME_INSCRITO,
               t.TOR_NOME,
    		   t.TOR_CATEGORIA,
               TOR_INSC_NOTA = SUM(t.TOR_INSC_NOTA),
               TOR_INSC_PONTOS = SUM(t.TOR_INSC_PONTOS)
        FROM @Tabela AS t
        GROUP BY t.NOME_INSCRITO,
    			t.TOR_CATEGORIA,
                 t.TOR_NOME
       ),
         Resumo
    AS (SELECT Dados.NOME_INSCRITO,
    		  Dados.TOR_CATEGORIA,
               [1ª ETAPA] = SUM(   CASE
                                       WHEN Dados.TOR_NOME = '1ª ETAPA' THEN
                                           Dados.TOR_INSC_NOTA
                                       ELSE
                                           0
                                   END
                               ),
               [2ª ETAPA] = SUM(   CASE
                                       WHEN Dados.TOR_NOME = '2ª ETAPA' THEN
                                           Dados.TOR_INSC_NOTA
                                       ELSE
                                           0
                                   END
                               ),
               [3ª ETAPA] = SUM(   CASE
                                       WHEN Dados.TOR_NOME = '3ª ETAPA' THEN
                                           Dados.TOR_INSC_NOTA
                                       ELSE
                                           0
                                   END
                               ),
               [4ª ETAPA] = SUM(   CASE
                                       WHEN Dados.TOR_NOME = '4ª ETAPA' THEN
                                           Dados.TOR_INSC_NOTA
                                       ELSE
                                           0
                                   END
                               )
        FROM Dados
        GROUP BY Dados.NOME_INSCRITO,Dados.TOR_CATEGORIA
       )
    SELECT R.NOME_INSCRITO,
    	   R.TOR_CATEGORIA,
           R.[1ª ETAPA],
           R.[2ª ETAPA],
           R.[3ª ETAPA],
           R.[4ª ETAPA],
           MÉDIA = CAST(((R.[1ª ETAPA] + R.[2ª ETAPA] + R.[3ª ETAPA] + R.[4ª ETAPA]) / 4) AS DECIMAL(18, 2)),
           Soma = CAST(((R.[1ª ETAPA] + R.[2ª ETAPA] + R.[3ª ETAPA] + R.[4ª ETAPA])) AS DECIMAL(18, 2))
    FROM Resumo R  ORDER BY r.NOME_INSCRITO,r.TOR_CATEGORIA;
    
    

    Wesley Neves - Brasilia-DF

     
    https://wesleyneves.wordpress.com/
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"






    Wesley Neves

    • Sugerido como Resposta Antero Marques sexta-feira, 24 de novembro de 2017 17:01
    quinta-feira, 23 de novembro de 2017 10:39
  • Wesley,

    Funciona. Porém, quando troco a variável pelo nome da minha View, os valores ficam zerados.
    Olha o resultado:

    NOME_INSCRITO TOR_CATEGORIA 1ª ETAPA 2ª ETAPA 3ª ETAPA 4ª ETAPA MÉDIA SOMA
    ALADIM COM  0.00   0.00   0.00   0.00   0.00   0.00 
    ALADIM SEM  0.00   0.00   0.00   0.00   0.00   0.00 
    ALECRIM SEM  0.00   0.00   0.00   0.00   0.00   0.00 
    ANASTACIO COM  0.00   0.00   0.00   0.00   0.00   0.00 
    ANASTACIO N/A  0.00   0.00   0.00   0.00   0.00   0.00 
    ANJO NEGRO COM  0.00   0.00   0.00   0.00   0.00   0.00 
    ARROJADO SEM  0.00   0.00   0.00   0.00   0.00   0.00 
    BAHREIN  COM  0.00   0.00   0.00   0.00   0.00   0.00 
    BARÃO COM  0.00   0.00   0.00   0.00   0.00   0.00 
    BIG BOY COM  0.00   0.00   0.00   0.00   0.00   0.00 
    BIG BOY SEM  0.00   0.00   0.00   0.00   0.00   0.00 


    Sam

    quinta-feira, 23 de novembro de 2017 10:47
  • veja se os nomes estão todos corretos, ou faça um insert into na variável table, ou ainda poste o resultado de um select na sua view.

    Wesley Neves - Brasilia-DF

     
    https://wesleyneves.wordpress.com/
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"






    Wesley Neves

    • Marcado como Resposta Samfera sexta-feira, 24 de novembro de 2017 20:27
    quinta-feira, 23 de novembro de 2017 10:55
  • Show de bola, meu amigo. Era o nome que tinha um ponto no final. Adicionei e "bingo".
    Deixa eu te abusar mais um pouco...  Com o WITH abaixo consigo eliminar a menor nota dele, como faço pra "mesclar" os WITHs? Ou seja, eliminar a menor nota dentro do código que você montou?

    with CTE_RN as
    (
        select
            *,
            ROW_NUMBER() OVER(PARTITION BY NOME_INSCRITO ORDER BY TOR_INSC_PONTOS) as RN
        from V_INCRICAO
    )

    select
        MIN(TOR_INSC_ID) as TOR_INSC_ID,
        MIN(TOR_ID) as TOR_ID,
        NOME_INSCRITO,
        TOR_CATEGORIA,

        SUM(TOR_INSC_PONTOS) as Pontos
    from CTE_RN
    where
        RN > 1
    group by
        NOME_INSCRITO,
        TOR_CATEGORIA

    Obrigado


    Sam

    quinta-feira, 23 de novembro de 2017 11:53
  • Detalha mais o que vc precisa,

    Wesley Neves

    sexta-feira, 24 de novembro de 2017 10:23
  • Certo...

    Preciso que, além da resposta que você me passou (funcionou beleza), a menor nota de cada NOME_INSCRITO não apareça no resultado. Ou seja: Será removida do resultado da consulta a menor nota independente de quantas categorias ele apareça.


    Deu pra entender?



    Sam

    sexta-feira, 24 de novembro de 2017 13:54
  • Qual seria o resultado esperado desse conjunto de dados

    DECLARE @Tabela TABLE
    (
        NOME_INSCRITO VARCHAR(100),
        TOR_CATEGORIA  VARCHAR(100),
        TOR_NOME VARCHAR(100),
        TOR_INSC_NOTA DECIMAL(18, 2),
        TOR_INSC_PONTOS INT
    );
    INSERT INTO @Tabela
    (
        NOME_INSCRITO,
    	TOR_CATEGORIA,
        TOR_NOME,
        TOR_INSC_NOTA,
        TOR_INSC_PONTOS
    )
    VALUES
    ('ALADIM','COM', '1ª ETAPA', 7.15, 8),
    ('ALADIM','SEM', '2ª ETAPA', 6.50, 1),
    ('ALADIM','SEM', '3ª ETAPA', 6.00, 12),
    ('ALADIM','COM', '4ª ETAPA', 6.40, 8);
    
    select * from @Tabela

    Wesley Neves - Brasilia-DF

     
    https://wesleyneves.wordpress.com/
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves

    sexta-feira, 24 de novembro de 2017 16:55
  • Samfera,

    Se a resposta do Wesley Neves já respondeu a pergunta original do post, marque como resposta, por favor. Daí então você pode tirar alguma outra dúvida complementar ou abrir outra thread para a dúvida adicional.

    Att,


    Antero Marques
    _______________________________________________________________________________
    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta. O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.


    sexta-feira, 24 de novembro de 2017 17:03
  • Opa Marques...

    Sou bem novato aqui e não sabia como funcionava. Peço desculpa aos colegas. Já marquei como resposta.


    Sam

    sexta-feira, 24 de novembro de 2017 20:27
  • O resultado esperado seria o seguinte:

    1ª ETAPA 2ª ETAPA 3ª ETAPA 4ª ETAPA Soma
    ALADIM SEM  6.50   6.00   6.50 
    ALADIM COM  7.15   6.40   13.55 

    Removi do resultado da menor nota (no caso foi 6.00, 3ª ETAPA). Como ele participou de 2 categorias, agrupei por categoria e somei os pontos por categoria. Na categoria SEM, ele ficou com 6.50 pontos, pois, removi o 6.00 que seria a "menor nota". E na categoria COM ele ficou com 13.55 pontos, a soma das duas notas (7.15 + 6.40).

    Deu pra entender?

    Ah!! Marquei como resposta, peço desculpa, pois como sou novato aqui, não sabia como funcionava.


    Sam


    • Editado Samfera sexta-feira, 24 de novembro de 2017 21:07
    sexta-feira, 24 de novembro de 2017 21:05
  • Qual seria o resultado esperado desse conjunto de dados

    DECLARE @Tabela TABLE
    (
        NOME_INSCRITO VARCHAR(100),
        TOR_CATEGORIA  VARCHAR(100),
        TOR_NOME VARCHAR(100),
        TOR_INSC_NOTA DECIMAL(18, 2),
        TOR_INSC_PONTOS INT
    );
    INSERT INTO @Tabela
    (
        NOME_INSCRITO,
    	TOR_CATEGORIA,
        TOR_NOME,
        TOR_INSC_NOTA,
        TOR_INSC_PONTOS
    )
    VALUES
    ('ALADIM','COM', '1ª ETAPA', 7.15, 8),
    ('ALADIM','SEM', '2ª ETAPA', 6.50, 1),
    ('ALADIM','SEM', '3ª ETAPA', 6.00, 12),
    ('ALADIM','COM', '4ª ETAPA', 6.40, 8);
    
    select * from @Tabela

    Wesley Neves - Brasilia-DF

     
    https://wesleyneves.wordpress.com/
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves

    Wesley,

    Desculpa ter postado novamente, imagino que você não viu.

    O resultado esperado seria o seguinte:

    1ª ETAPA 2ª ETAPA 3ª ETAPA 4ª ETAPA Soma
    ALADIM SEM  6.50   6.00   6.50 
    ALADIM COM  7.15   6.40   13.55 

    Removi do resultado da menor nota (no caso foi 6.00, 3ª ETAPA). Como ele participou de 2 categorias, agrupei por categoria e somei os pontos por categoria. Na categoria SEM, ele ficou com 6.50 pontos, pois, removi o 6.00 que seria a "menor nota". E na categoria COM ele ficou com 13.55 pontos, a soma das duas notas (7.15 + 6.40).

    Obrigado


    Sam

    quarta-feira, 29 de novembro de 2017 10:10
  • Posta essa duvida em outra pergunta por favor , assim outros participantes podem ajudar também na solução.

    Wesley Neves - Brasilia-DF

     
    https://wesleyneves.wordpress.com/
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves

    quarta-feira, 29 de novembro de 2017 10:19
  • Certo... Farei isso.

    Obrigado.


    Sam

    quarta-feira, 29 de novembro de 2017 10:21