Comando Row Number()
Gostaria que a sentença abaixo representasse os meses em coluna, empregando o comando row number() é possivel?
SELECT DISTINCT CODCFO, VALORORIGINAL, MONTH(DATAEMISSAO) MES$,
ROW_NUMBER() OVER (ORDER BY valororiginal)AS LINHA FROM FLAN
WHERE CODCOLIGADA = 1 AND CODFILIAL = 3911 AND CODRECEITA LIKE '1708%'
AND DATAEMISSAO >= '2014-01-01' AND DATAEMISSAO <= '2014-12-31'
AND VALORIRRF > 0
ORDER BY CODCFO, MES$, 2
O resultado dessa sentença apresenta:
Fornec valor mes linha
000019 1320.0000 10 32
000117 891.7600 1 7
000117 891.7600 2 8
000117 891.7600 3 13
000117 891.7600 4 16
000117 891.7600 5 14
000117 878.3800 6 4
000117 891.7600 6 17
000117 891.7600 7 9
000117 891.7600 8 15
000117 878.3800 9 5
000117 891.7600 9 10
000117 891.7600 10 18
000117 891.7600 11 11
000117 891.7600 12 12
002169 11620.0000 1 69
002169 15600.0000 6 75
002169 5000.0000 11 55
002169 19369.0000 11 77
002169 19369.0000 12 76
002683 1260.0000 6 31
002683 2000.0000 6 52
004190 1014.0800 7 21
004190 1014.0800 7 23
004190 1014.0000 8 20
004190 1014.0800 8 26
004190 1014.0800 9 24
004190 1014.0800 10 22
004190 1014.0800 11 27
004190 1014.0800 12 25
004219 1357.2000 1 34
004219 1131.0000 2 28
004219 1244.1000 3 30
004219 1357.2000 4 35
004219 1327.5900 5 33
004219 1568.9700 6 45
004219 1519.2200 7 42
004219 1448.2800 8 39
004219 1568.9700 9 43
004219 496.6300 10 1
004219 1568.9700 10 44
004219 1689.6600 11 47
004219 1448.2800 12 40
005837 813.0000 10 3
007099 1875.0000 5 49
007099 1875.0000 5 50
007815 1493.6000 5 41
007815 13442.4000 5 72
007815 13442.4000 5 73
007815 13442.4000 5 74
007815 2871.6000 7 53
008772 923.6500 3 19
008836 1790.0000 1 48
009325 5500.0000 3 56
009325 12700.0000 4 71
009325 6438.7500 6 57
009325 7500.0000 6 60
009325 6438.7500 7 58
009325 7500.0000 7 61
009325 7500.0000 8 65
009325 7500.0000 9 62
009325 7500.0000 9 64
009325 10800.0000 10 68
009325 7500.0000 11 63
009325 7500.0000 12 66
009587 1200.0000 4 29
009588 1950.0000 6 51
009713 880.0000 7 6
009847 1380.9000 9 37
009847 1401.9300 9 38
009847 1574.0400 10 46
009883 12444.3000 6 70
010126 22034.2200 12 78
010126 55085.5600 12 79
010126 55085.5600 12 80
010126 55085.5600 12 81
010126 55085.5600 12 82
010164 3000.0000 7 54
010262 751.0000 8 2
010548 9600.0000 9 67
010548 7200.0000 11 59
010815 1370.0000 10 36
muito obrigada pelo help...
SELECT DISTINCT CODCFO, VALORORIGINAL, MONTH(DATAEMISSAO) MES$,
ROW_NUMBER() OVER (ORDER BY valororiginal)AS LINHA FROM FLAN
WHERE CODCOLIGADA = 1 AND CODFILIAL = 3911 AND CODRECEITA LIKE '1708%'
AND DATAEMISSAO >= '2014-01-01' AND DATAEMISSAO <= '2014-12-31'
AND VALORIRRF > 0
ORDER BY CODCFO, MES$, 2
O resultado dessa sentença apresenta:
Fornec valor mes linha
000019 1320.0000 10 32
000117 891.7600 1 7
000117 891.7600 2 8
000117 891.7600 3 13
000117 891.7600 4 16
000117 891.7600 5 14
000117 878.3800 6 4
000117 891.7600 6 17
000117 891.7600 7 9
000117 891.7600 8 15
000117 878.3800 9 5
000117 891.7600 9 10
000117 891.7600 10 18
000117 891.7600 11 11
000117 891.7600 12 12
002169 11620.0000 1 69
002169 15600.0000 6 75
002169 5000.0000 11 55
002169 19369.0000 11 77
002169 19369.0000 12 76
002683 1260.0000 6 31
002683 2000.0000 6 52
004190 1014.0800 7 21
004190 1014.0800 7 23
004190 1014.0000 8 20
004190 1014.0800 8 26
004190 1014.0800 9 24
004190 1014.0800 10 22
004190 1014.0800 11 27
004190 1014.0800 12 25
004219 1357.2000 1 34
004219 1131.0000 2 28
004219 1244.1000 3 30
004219 1357.2000 4 35
004219 1327.5900 5 33
004219 1568.9700 6 45
004219 1519.2200 7 42
004219 1448.2800 8 39
004219 1568.9700 9 43
004219 496.6300 10 1
004219 1568.9700 10 44
004219 1689.6600 11 47
004219 1448.2800 12 40
005837 813.0000 10 3
007099 1875.0000 5 49
007099 1875.0000 5 50
007815 1493.6000 5 41
007815 13442.4000 5 72
007815 13442.4000 5 73
007815 13442.4000 5 74
007815 2871.6000 7 53
008772 923.6500 3 19
008836 1790.0000 1 48
009325 5500.0000 3 56
009325 12700.0000 4 71
009325 6438.7500 6 57
009325 7500.0000 6 60
009325 6438.7500 7 58
009325 7500.0000 7 61
009325 7500.0000 8 65
009325 7500.0000 9 62
009325 7500.0000 9 64
009325 10800.0000 10 68
009325 7500.0000 11 63
009325 7500.0000 12 66
009587 1200.0000 4 29
009588 1950.0000 6 51
009713 880.0000 7 6
009847 1380.9000 9 37
009847 1401.9300 9 38
009847 1574.0400 10 46
009883 12444.3000 6 70
010126 22034.2200 12 78
010126 55085.5600 12 79
010126 55085.5600 12 80
010126 55085.5600 12 81
010126 55085.5600 12 82
010164 3000.0000 7 54
010262 751.0000 8 2
010548 9600.0000 9 67
010548 7200.0000 11 59
010815 1370.0000 10 36
muito obrigada pelo help...
Gislene Holgado
Curtidas 0
Respostas
Joel Rodrigues
03/02/2015
O objetivo do ROW_NUMBER() é numerar as linhas, acredito que você esteja precisando do comando PIVOT. Pesquise a respeito.
GOSTEI 0
Gislene Holgado
03/02/2015
Olá Joel, foi minha primeira tentativa, porem ao copiar a sentença pra aplicação, gerar relatorios, deu conflito no sql. O comando pivot nao roda na compatibilidade 80 do banco de dados. Eu rodei o alter table numa base de teste no banco, mas quando fui rodar na aplicação nem abriu o aplicativo.
Por isso tentei o row_number()
Por isso tentei o row_number()
GOSTEI 0
Isaac Jose
03/02/2015
Gislene. faça a como o outro que te falei.. crie as coluna e utilize o update... mesmo que a principio nao seja o seu objetivo.. mais pelo menos vc ja consegue atender a sua demanda e com mais tempo vc volta com as outras...
GOSTEI 0
Gislene Holgado
03/02/2015
Vou tentar fazer isso.
Obrigada
Obrigada
GOSTEI 0
Joel Rodrigues
03/02/2015
Recentemente enfrentei esse problema de compatibilidade e para resolver tive que criar uma tabela temporária com as colunas que eu desejava, como o amigo sugeriu acima.
Você pode alterar o nível de compatibilidade do banco, mas não sei se sua engine de acesso cai suportar. No meu caso, era a BDE do Delphi que não suportava o nível 90.
Você pode alterar o nível de compatibilidade do banco, mas não sei se sua engine de acesso cai suportar. No meu caso, era a BDE do Delphi que não suportava o nível 90.
GOSTEI 0
Fagner Lopes
03/02/2015
É possível definir um valor inicial para a funcao ROW_NUMBER() ?
Preciso que a numeração inicie em 1001.
Preciso que a numeração inicie em 1001.
GOSTEI 0
Alex Lekao
03/02/2015
É possível definir um valor inicial para a funcao ROW_NUMBER() ?
Preciso que a numeração inicie em 1001.
Preciso que a numeração inicie em 1001.
Oi Fagner, bom dia!!!
Acredito que não, uma vez que o Row Number mostra o numero da linha do registro retornado pelo select.
Você teria que fazer algum outro tipo de execução.
Sugiro abrir um novo tópico para a sua duvida.
Atenciosamente,
GOSTEI 0
Emerson Nascimento
03/02/2015
tente assim:
SELECT DISTINCT CODCFO, VALORORIGINAL, MONTH(DATAEMISSAO) MES, 1000 + (ROW_NUMBER() OVER (ORDER BY valororiginal)) AS LINHA FROM FLAN WHERE CODCOLIGADA = 1 AND CODFILIAL = 3911 AND CODRECEITA LIKE '1708%' AND DATAEMISSAO >= '2014-01-01' AND DATAEMISSAO <= '2014-12-31' AND VALORIRRF > 0 ORDER BY valororiginal
GOSTEI 0