none
Matriz RRS feed

  • Pergunta

  • O B.D. que eu utilizo é o SQL Server 2000, e ele se chama Lotomania, a tabela se chama Concursos, e tem 3 campos e o primeiro campo é alto numerável.

    ID       NumeroDoConcurso       ConcursoSorteado

    1                   1                             0102030405060708091011121314151617181920

    4                   2                             0510152025303540455055606570758085909500

    8                 600                           2021222324252627282930313233343536373839

     

    Como eu faço uma matriz de 100 posições para guardar a quantidade de acertos de cada números e depois imprimir a matriz inteira, ou seja eu vou ter que ler todo o meu B.D. que tem mais de 600 concurso sorteado, ou seja cada linha do B.D. possui 20 números premiados de dois digitos cada número que si torna um número inteiro de 40 dígitos, eu tenho que ler os números de cada linha de dois em dois números e ir fazendo a pontuação na matriz, até ler as 600 linhas do B.D. e depois imprimir a matriz inteira com o número da matriz que comesça na posição 00 até 99 e o valor de vezes que cada número da matriz repetem.

    Ficarei muito grato se alguém conserguir resolver o meu problema.

    segunda-feira, 10 de julho de 2006 12:25

Respostas

  • Bom dia Luciano.

    Acho que isso te ajuda. Qualquer coisa post de novo.

    obs: talvez o site desarrume o post.

    {}'s

    /***************************************************************************************/

    create table tbl ( id_concurso int , numero_concurso int , concurso_sorteado varchar(40) )

    go

    insert tbl values(1,1, '0101010101010101010101010101010101010101')

    insert tbl values(4,2, '0000000000000000000000000000000000000055')

    go

    create procedure usp_loteria

    as

    declare @int_current_row_index int

    declare @int_max_row_index int

    declare @int_current_index_text int

    declare @vch_text varchar(40)

    set @int_current_row_index=1

    set @int_max_row_index=0

    set @vch_text=''

    set @int_current_index_text=1

    create table #tbl_matrix(numero_concurso varchar(3), result int default 0 )

    insert #tbl_matrix (result, numero_concurso)

    values(default, '00')

    while (@int_current_row_index < 100) begin

    insert #tbl_matrix (result, numero_concurso)

    values(default, right('0'+cast(@int_current_row_index as varchar),2))

    set @int_current_row_index=(@int_current_row_index+1)

    end

    select *, row_index=identity(int,1,1) into #tbl_copy from tbl

    select @int_current_row_index=min(row_index), @int_max_row_index=max(row_index)

    from #tbl_copy

    set @int_current_row_index=1

    while(@int_current_row_index <= @int_max_row_index)begin

    select @vch_text=ltrim(rtrim(concurso_sorteado))

    from #tbl_copy where (row_index = @int_current_row_index)

    while(@int_current_index_text <= len(@vch_text))begin

    update #tbl_matrix set result=(result+1)

    where (numero_concurso = substring(@vch_text,@int_current_index_text,2))

    set @int_current_index_text=(@int_current_index_text+2)

    end

    set @vch_text=''

    set @int_current_row_index=(@int_current_row_index+1)

    set @int_current_index_text=1

    end

    select * from #tbl_matrix

    go

    exec usp_loteria

    /****************************************************************************************/

     

    segunda-feira, 31 de julho de 2006 10:54