Consulta com coluna com valores sequanciais

Firebird

18/03/2005

tenho uma consulta e preciso criar uma coluna (apenas na consulta, não tem na tabela) que exiba valores sequenciais começando do 1 (ou seja, a 1º linha tenha o valor 1, a 2º o valor 2, e assim em diante).

Como faço para exibir valores sequenciais em uma coluna?


Raserafim

Raserafim

Curtidas 0

Respostas

Fsflorencio

Fsflorencio

18/03/2005

Pensei em três modos de se fazer isto:

1 - Use um campo calculado no Delphi.

2 - Use um Generator para a coluna que vc quer repetir, mas vc tem que zerar o generator antes de abrir a consulta, pois ele acumula. A solução do Generator costuma não funcionar às vezes quando se tem mais de uma tabela no select.

3 - Outra solução ainda pode ser utilizar uma stored procedure pra fazer isto.


GOSTEI 0
Raserafim

Raserafim

18/03/2005

a segunda e terceira opção não dá certo pois não tenho um campo na tabela, esse ´contador´ é apenas na consulta.
Mas a primeira opção dá pra resolver a situação, pois posso criar um campo callculado e atribuir o valor da property RecNo a esse campo. Blz.
Porém vai ter uma situação que vou precisar repetir algum numero do contador. (ex: 1,2,3,3,3,4,5...). Alguma solução na cabeça para este problema?


GOSTEI 0
Fsflorencio

Fsflorencio

18/03/2005

Pra resolver isto, precisaria de mais detalhes sobre esta situação, mas de antemão já digo que não é necessário criar um campo para isto se vc preferir utilizar as primeiras opções. Se vc criar um stored procedure selecionável (destas que retornam valores) vc teria mais maleabilidade em produzir este contador.
Se vc detalhar mais o problema, quem sabe a gente não descobre uma forma mais interessante de resolver isto?!


GOSTEI 0
Raserafim

Raserafim

18/03/2005

fsflorencio, agora realmente tenho q encontrar uma solu~c´ao para faer uma coluna sequencial na consulta. O meu problema é idêntico a um ranking, onde preciso exibir uma coluna com a posição e outra com o nome da pessoa.
O que preciso é que a coluna da posição seja gerada uma sequência de números (1º, 2º, 3º,...) de acordo com a ordem dos nomes.


GOSTEI 0
Gandalf.nho

Gandalf.nho

18/03/2005

Eu algumas vezes precisei disso em relatórios, eu resolvi declarando uma variável Integer na seção private do form e incrementando-a via código a cada novo registro (no caso do QuickReport eu uso o evento BeforePrint da banda)


GOSTEI 0
Raserafim

Raserafim

18/03/2005

gandalf, pelo delphi eu tb consegui resolver isso, utilizei um campo calculado e atribui o valor da propriedade RecNo (que é o número da linha). Mas agora eu tô precisando fazer isso diretamente na consulta.


GOSTEI 0
Afarias

Afarias

18/03/2005

Uma [boa] solução é usar um Stored Proc para isso



T+


GOSTEI 0
Steve_narancic

Steve_narancic

18/03/2005

E teria alguma forma de fazer isto dentro de uma instrução SQL?


GOSTEI 0
POSTAR