none
Consulta com varios registros. RRS feed

  • Pergunta

  • Tenho duas tabelas CCUSTO e MOVRATCCUSTO, estou dando um select nas duas e selecionando o NOME de CCUSTO e Codigo e valor de MOVRATCCUSTO, referente a um ID, que esta sendo passado por um Espelho (Que espelha o id do movimento selecionado).

    Quero fazer com que essa consulta por exemplo se tiver 20 registros ao todo exiba 10 em uma coluna e o restante em outra coluna.

    Exemplo: com 8 registros

    Cod1    Custo1    10                             Cod5     Custo5     50

    Cod2    Custo2    20                             Cod6     Custo6     60

    Cod3    Custo3    30                             Cod7     Custo7     70

    Cod4    Custo4    40                             Cod8     Custo8     80

    Estou usando o sql server 2008 R2.

    exemplo da sentença que estou usando:

    SELECT MOVRATCCU.CODCCUSTO, GCCUSTO.NOME, MOVRATCCU.VALOR
    FROM MOVRATCCU,GCCUSTO
    WHERE gccusto.codccusto=movratccu.codccusto
    and MOVRATCCU.IDMOV=:ESPELHO#1
      
    quarta-feira, 19 de dezembro de 2012 14:27

Respostas

  • Não seria mais fácil fazer isso na aplicação do que via T-SQL? Precisa mesmo que o SQL já retorne os dados formatados em 2 colunas?

    E se tiverem 9 linhas? Uma das colunas terão 5 linhas, qual delas? a primeira ou a segunda?

    Abs.


    Fabiano Neves Amorim - SQL Server MVP http://blogfabiano.com/


    quinta-feira, 20 de dezembro de 2012 16:39
  • Randson,

    Meu amigo, este tipo de implementação é muito comum ser realizada através de um gerador de relatórios e não no SQL Server que não possui nenhuma funcionalidade que você possa indicar a quantidade de linhas por colunas.

    A minha sugestão é que você pense em realizar este tipo de apresentação de dados na sua aplicação através de um DataGrid ou Gerador de Relatório.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Marcado como Resposta Ricardo Russo segunda-feira, 21 de janeiro de 2013 12:31
    quinta-feira, 20 de dezembro de 2012 16:45

Todas as Respostas

  • Randson,  boa noite!

    Desculpa me ignorância mais não conheço esse tal de :ESPELHO#1, bom mais acho que entendi o que você precisa e se for o caso você pode usar o comando UNION ALL funciona assim:

    select campo1, campo2, campo3, '', '','' from Custo 
    where campo1 <= 10
    union all
    select '','', '', campo4, campo5, campo6 from MOVCUSTO
    Where campo4 >10
    
    

    Acredito que isso vai ajudar.

    quarta-feira, 19 de dezembro de 2012 21:06
  • o :ESPELHO#1 é uma variavel que significa que MOVRATCCU.IDMOV vai ser igual a uma variavel que esta disposta no relatorio e esta sendo espelhada(representada) por esse :ESPELHO#1 !
    quinta-feira, 20 de dezembro de 2012 11:21
  • Não seria mais fácil fazer isso na aplicação do que via T-SQL? Precisa mesmo que o SQL já retorne os dados formatados em 2 colunas?

    E se tiverem 9 linhas? Uma das colunas terão 5 linhas, qual delas? a primeira ou a segunda?

    Abs.


    Fabiano Neves Amorim - SQL Server MVP http://blogfabiano.com/


    quinta-feira, 20 de dezembro de 2012 16:39
  • Randson,

    Meu amigo, este tipo de implementação é muito comum ser realizada através de um gerador de relatórios e não no SQL Server que não possui nenhuma funcionalidade que você possa indicar a quantidade de linhas por colunas.

    A minha sugestão é que você pense em realizar este tipo de apresentação de dados na sua aplicação através de um DataGrid ou Gerador de Relatório.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Marcado como Resposta Ricardo Russo segunda-feira, 21 de janeiro de 2013 12:31
    quinta-feira, 20 de dezembro de 2012 16:45