Pular para o conteúdo
#94259
Avatar de Sousa04Sousa04
Participante

    não não.

    Hoje a noite tive um sonho e nesse sonho eu vi a solução rsrsrs.

    separei essa tabela em duas tabela primeiro e tabela segundo. Uma com os primeiros lugares por seção e outra com os segundos lugares por seção tbm.

    depois peguei a tabela dos primeiros e fiz um select para pegar os dois maiores votos por seção e jogar numa terceira tabela, caso existir apenas um maior voto em determinada secao pego um da tabela primeiro e outro da tabela segundo e jogo na terceira tabela.
    Caso existir dois ou mais com maior voto naquela secao pego dois e jogo na tabela terceiro
    segue um trechinho do codigo
    INSERT INTO RAMDOMICO1
    SELECT * FROM TB_RESULTADO_GERAL
    WHERE NOMESECAO = CURSOR_TEMP.NOMESECAO
    AND VOTOS = PRIMEIRO
    AND CPF NOT IN (SELECT CPF FROM RAMDOMICO1);

        -- INSERE NA TABELA OS SEGUNDOS COLOCADOS
              INSERT INTO RAMDOMICO2
              SELECT *  FROM TB_RESULTADO_GERAL
               WHERE NOMESECAO = CURSOR_TEMP.NOMESECAO
               AND VOTOS = SEGUNDO
               AND CPF NOT IN (SELECT CPF FROM RAMDOMICO2);
    

    FOR CURSOR_RANDOM IN (SELECT DISTINCT(NOMESECAO) FROM RAMDOMICO1)
    LOOP
    –VERIFICAR O NUMERO DE REGISTROS DE UMA SECAO

      SELECT COUNT(*) INTO VAR_LINHA FROM RAMDOMICO1 WHERE NOMESECAO = CURSOR_RANDOM.NOMESECAO;
    -- SE RETORNAR APENAS UM REGISTRO INSERE NA TB_FINAL O PRIMEIRO E O SEGUNDO
    
        IF VAR_LINHA = 1 THEN
          INSERT INTO TB_FINAL
          SELECT * 
          FROM (SELECT * 
                FROM RAMDOMICO1 
                WHERE NOMESECAO = CURSOR_RANDOM.NOMESECAO
                ORDER BY dbms_random.value)
          WHERE ROWNUM < 2;
    
          INSERT INTO TB_FINAL
          SELECT * 
          FROM (SELECT * 
                FROM RAMDOMICO2 
                WHERE NOMESECAO = CURSOR_RANDOM.NOMESECAO
                ORDER BY dbms_random.value)
          WHERE ROWNUM  1 THEN
              INSERT INTO TB_FINAL
              SELECT * 
              FROM (SELECT * 
                    FROM RAMDOMICO1 
                    WHERE NOMESECAO = CURSOR_RANDOM.NOMESECAO
                    ORDER BY dbms_random.value)
              WHERE ROWNUM < 3;
            END IF;
        END IF;
    END LOOP;
    

    Se eu continuar praticando assim dia eu aprendo!!!!!!
    rrsrs
    Vlw Ishi
    obrigado ai

    plugins premium WordPress