- Este tópico contém 8 respostas, 5 vozes e foi atualizado pela última vez 14 anos, 3 meses atrás por
fabiogalera.
-
AutorPosts
-
12 de dezembro de 2011 às 9:30 pm #102102
Peterson
ParticipanteBoa tarde Galera,
É possível usar funções nos “apelidos” de colunas?
Ex:
SELECT id, nome, COUNT(id) AS TO_CHAR(SYSDATE,’MON’)
FROM tabela;???
12 de dezembro de 2011 às 9:58 pm #102104rman
Participante@Peterson
Tudo que estiver entre aspas dupla o Oracle vai reconhecer como texto.
SELECT 1 AS "TO_CHAR(SYSDATE,'MON')"
FROM DUAL
SELECT id, nome, COUNT(id) AS "TO_CHAR(SYSDATE,'MON')"
FROM tabela;
Acho que não é isso que você quer né ? Você quer é colocar um alias com a data atual? Talvez com SQL DINAMICO…
12 de dezembro de 2011 às 10:19 pm #102105leandrolbs
Participantekkkk boa essa pergunta..
tentei aqui, não funciona…
13 de dezembro de 2011 às 3:49 pm #102117Peterson
Participanteentão rman, quero que o nome da coluna apareça com o mês de referência entendeu? tipo… ao gerar a query, o nome da coluna virá como NOVEMBRO que seria o mês anterior.
Também não consegui fazer assim, mas acredito que usando variáveis funcione… vou continuar testando e aviso vocês do que conseguir…
13 de dezembro de 2011 às 4:07 pm #102118rman
Participante@Peterson
Qual é a real necessidade disso ? FORMS/REPORTS ?
14 de dezembro de 2011 às 2:50 pm #102142Peterson
Participanterman,
Estou elaborando uma query que me o seguinte resultado
COLUNA 1 – vendedor
COLUNA 2 – vendas do vendedor no último mês
COLUNA 3 – vendas do vendedor no penúltimo mês
COLUNA 4 – vendas do vendedor no antepenúltimo mês.mas gostaria que as colunas 2,3 e 4 viessem com os nomes dos respectivos meses, entendeu?
14 de dezembro de 2011 às 8:51 pm #102156Manoel872
ParticipanteQue tal uma gambis? Cria um processo onde vc cria uma view em cima da tabela em tempo de execução com o nome das colunas conforme vc precisa… e depois retornar um cursor desta view….
Att,
Manoel Jr.
15 de dezembro de 2011 às 12:48 am #102182fabiogalera
ParticipanteVocê precisa gerar a query SQL dinamicamente.
Em Shell Script você gera isso rapidinho.
Ou pode fazer uma gambiarra monumental:
Gambiarra mode on ...set pages 0
select * from (
select
substr('VENDEDOR',1,10),
to_char(sysdate,'MON/YYYY'),
to_char(sysdate-30,'MON/YYYY'),
to_char(sysdate-60,'MON/YYYY')
from dual
UNION
select
'-------------------',
'-------------------',
'-------------------',
'-------------------'
from dual
) order by 2 DESC;
15 de dezembro de 2011 às 12:55 am #102183fabiogalera
ParticipanteOps, assim você terá problemas com meses de 31 dias.
set pages 0
select * from (
select
substr('VENDEDOR',1,10),
to_char(sysdate,'MON/YYYY'),
to_char(to_date(to_char(sysdate,'YYYYMM')-1,'YYYYMM'),'MON/YYYY'),
to_char(to_date(to_char(sysdate,'YYYYMM')-2,'YYYYMM'),'MON/YYYY')
from dual
UNION
select
'-------------------',
'-------------------',
'-------------------',
'-------------------'
from dual
) order by 2 DESC;
E essa tem problema caso seja Janeiro, Fevereiro … ok, esquece hehe.
-
AutorPosts
- Você deve fazer login para responder a este tópico.