- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 10 meses atrás por Ishii.
-
AutorPosts
-
3 de abril de 2008 às 12:29 am #81585mpvargasParticipante
Caros Amigos,
Tenho essa query
SELECT SUBSTR(RD_DATPGT,5,2) AS MES, RD_PD AS VERBA, SUM(RD_VALOR) AS TOTAL FROM SRD010
WHERE SUBSTR(RD_DATPGT,1,4) = ‘2007’
AND RD_MAT > ‘100000’ and RD_MAT < '900000' AND RD_PD IN ('506','508','544','545','546','551','505') AND D_E_L_E_T_<>‘*’
GROUP BY SUBSTR(RD_DATPGT,5,2), RD_PD
ORDER BY SUBSTR(RD_DATPGT,5,2);O campo RD_DATPGT é char(8) formato AAAAMMDD
Esta funcionando corretamente, mas está repetindo o mês no resultado, como estou usando o GROUP BY, o DISTINCT não funciona…
Tentei usando o BREAK ON mas não deu certo.
Alguém pode me ajudar.
Obrigado.3 de abril de 2008 às 3:21 pm #81594Marcio68AlmeidaParticipanteComo você está agrupando por mês e RD_PD, portanto quantas vezes houver o RD_PD em determinado mês, quantas vezes o mês se repetirá…
A menos que seja outro erro, nesse caso, exemplifique como está o resultado e o que você quer que saia…3 de abril de 2008 às 11:58 pm #81599mpvargasParticipanteCaro Amigo,
O resultado está saindo dessa forma:MES VERBA TOTAL
01 544 73,58
01 505 1316498,12
01 508 3388,58
01 506 59481,49
02 506 1400408,21
02 551 62914,28
02 505 332123,52
03 506 28815,59
03 505 1226780,61
04 505 1242089,27
04 506 56621,66
04 508 10,69
05 508 702,7
05 544 541
05 506 30733,48
05 505 1239512,46
06 508 62,16
06 505 1276921,52
06 506 50915,56
06 544 138,34
06 551 912,36
07 505 1338476,96
07 506 48504,24
07 508 288,13
08 544 984,03
08 506 76253,06
08 508 2591,2
08 545 11,14
08 505 1290827,35
09 506 54518,87
09 505 1216866,11
09 508 2840,67
10 508 278,95
10 544 745,38
10 506 4875,63
10 505 1283972,93
11 508 1608,82
11 544 66,55
11 506 9477,52
11 505 1280641,68
12 506 9427,39
12 508 1200029,87
12 505 1305023,9943 rows selected
O problema é que eu terei que colocar do ano 2003 à 2008, e existirão outros campos…
Gostaria que o resultado fosse dessa forma:
ANO MES VERBA TOTAL
—– — —— ———————-
2003 01 544 73,58
505 1316498,12
508 3388,58
506 59481,4902 506 1400408,21 551 62914,28 505 332123,52
.
.
.ANO MES VERBA TOTAL
—– — —— ———————-
2008 01 544 73,58
505 1316498,12
508 3388,58
506 59481,4902 506 1400408,21 551 62914,28 505 332123,52
4 de abril de 2008 às 4:55 pm #81605Marcio68AlmeidaParticipanteEntendi o que você quer…
Mas isso você conseguirá com as ferramentas Forms e Reports, não no SQL Plus.4 de abril de 2008 às 5:15 pm #81607mpvargasParticipanteValeu Marcio.
Obrigado.4 de abril de 2008 às 9:22 pm #81613IshiiParticipanteOlá,
O problema é que no Break On somente funciona com colunas mesmo de uma tabela como você está usando funções to_char, substr etc. O Sql*Plus faz primeiro a função depois o Break On mas não funciona pois o retorno da Coluna fica to_char…. e o Break não aceita estas funções nem alias de coluna.Tente fazer uma carga numa tabela temporária primeiro com as colunas com os nomes que você precisa e depois o select com o break on.
[]s Ishii
-
AutorPosts
- Você deve fazer login para responder a este tópico.