none
Varias Linhas em uma celula de uma table RRS feed

  • Pergunta

  •  

    olá pessoal, estou aqui com mais uma duvida...

    tenho uma table com tres colunas e varias linhas, sendo q cada recebe um valor de um dataset.

    no meio da minha table tenho uma celula q posso receber varios valores, consequentemente o numero de linhas daquela row será o numero de registros retornados na query.

    isso é possivel?

     

    ___________________________________________

    |________|_________A_______|______1_________|

    |________|_________B_______|______2_________|

    |              |                                    |  O numero de        |

    |              |               C                   | Linhas dessa        | 

    |              |                                    | celula varia            |

    |________|_________________|________________|

                              |________|_________D_______|________4____ __|

    terça-feira, 5 de agosto de 2008 12:58

Respostas

  •  

    Bom dia Wesley,

     

    Como essa informação está vindo do seu banco de dados? Se o formato for o seguinte:

     

    Code Snippet

     

    COLUNA1 COLUNA2
    A       1
    B       2
    C       XXX
    C       AAA
    C       ZZZ
    D       4 

     

     

     

    Então você tem que criar um agrupamento pela Coluna1 no RS.

     

    Att

    Boreki

     

     

    • Marcado como Resposta Richard Juhasz quinta-feira, 28 de fevereiro de 2013 12:46
    quarta-feira, 6 de agosto de 2008 16:03

Todas as Respostas

  • Wesley,

     

    Você quer mostrar o número de linhas que devem ser retornadas de acordo com o registro?

     

    terça-feira, 5 de agosto de 2008 13:12
  • nao.
    vou ver se consigo explicar melhor...

    a celula deve receber os registros.
    ex:  se tiver 5 registros a celula terá que ter 5 linhas, se o query trouxer 3 registros, 3 linhas.

    terça-feira, 5 de agosto de 2008 18:56
  • Wesley,

     

    Você quer concatenar as várias linhas dentro do mesmo textbox?

    terça-feira, 5 de agosto de 2008 19:25
  • Não. o que quero fazer é: dentro de um mesmo textbox, colocar todos os registros em linhas separadas.

    ex: se este campo troxer 3 registros ficará assim:

    ___________________________________________

    |________|_________A_______|______1_________|

    |________|_________B_______|______2_________|

    |              |                                    | _XXX___________ |

    |              |               C                   | _AAA__________ | 

    |              |                                    | _ZZZ___________ |

    |________|_________________|________________|

                              |________|_________D_______|________4____ __|



    se este campo troxer 5 registros ficará assim:

    ___________________________________________

    |________|_________A_______|______1_________|

    |________|_________B_______|______2_________|

    |              |                                    | _XXX____________ |

    |              |                                    | _AAA___________ | 

    |              |                 C                 | _ZZZ___________  |

    |              |                                    | _CCC___________ |

    |_______| _________________| _BBB___________ |

    |________|_________D_______|________4____ __|


    terça-feira, 5 de agosto de 2008 19:49
  •  

    Veja se o exemplo lhe da uma luz:

     

    Code Snippet


    drop table #res
    drop table #tab

    create table #res (linha varchar(200)) -- Receberá o resutlado

    create table #tab (nome varchar(20), data datetime, valor int) --tabela massa de teste
    insert into #tab (nome, data, valor) values ('Marcos', '01/01/2003', 100)
    insert into #tab (nome, data, valor) values ('Marcos', '2003/01/15', 55)
    insert into #tab (nome, data, valor) values ('Marcos', '02/02/2003', 135)
    insert into #tab (nome, data, valor) values ('Carlos', '01/02/2003', 75)
    insert into #tab (nome, data, valor) values ('Carlos', '02/01/2003', 35)

    DECLARE @nome as varchar(20), @nome_antes as varchar(20), @data as datetime, @valor as int, @var as varchar(500)
    DECLARE mycursor CURSOR FOR
    select * from #tab order by nome,data
    OPEN mycursor
    FETCH NEXT FROM mycursor
    INTO @nome, @data, @valor
    select @nome_antes = @nome
    select @var = ''
    WHILE @@FETCH_STATUS = 0
    BEGIN
         if @nome = @nome_antes
              set @var = @var + ' ' + convert(varchar(12),@data,103) + ' ' + convert(varchar(10),@valor)
         else
         begin
              select @var = @nome_antes + ' ' + @var
              insert into #res (linha) values (@var     )
              select @var = ''
              select @nome_antes = @nome
              set @var = @var + ' ' + convert(varchar(12),@data,103) + ' ' + convert(varchar(10),@valor)

            end
         FETCH NEXT FROM mycursor
         INTO @nome, @data, @valor
    END
    select @var = @nome_antes + ' ' + @var
    insert into #res (linha) values (@var     )
    CLOSE mycursor
    DEALLOCATE mycursor
    GO
    select * from #res

     

     

     

     

    É utilizado um CURSOR pra concatenar os campos. É só adaptar para o que vc quer.

     

    terça-feira, 5 de agosto de 2008 20:21
  •  

    Bom dia Wesley,

     

    Como essa informação está vindo do seu banco de dados? Se o formato for o seguinte:

     

    Code Snippet

     

    COLUNA1 COLUNA2
    A       1
    B       2
    C       XXX
    C       AAA
    C       ZZZ
    D       4 

     

     

     

    Então você tem que criar um agrupamento pela Coluna1 no RS.

     

    Att

    Boreki

     

     

    • Marcado como Resposta Richard Juhasz quinta-feira, 28 de fevereiro de 2013 12:46
    quarta-feira, 6 de agosto de 2008 16:03
  • Concordo com  o Boreki, terá que ser feito um agrupamento.

    quinta-feira, 7 de agosto de 2008 23:05