Jump to content
Sign in to follow this  
fimiani_lucas

Chumbar um valor em um Sysdate

Recommended Posts

Boa tarde,

Estou tentando fazer um relatório onde a faturação saia mensal, ou seja, tenha colunas com os 12 meses para prever uma faturação por mes e além disso fazer a previsão para os próximos 24 meses :

EX:

JAN/2016 - 0

FEV/2016 - 20

MAR/2016 - 30

ABRIL/2016 -0

.......

AGOSTO/2017 - 30

etc

Estou tentando fazendo a seguinte lógica, mas não funciona:

SELECT TO_DATE( SYSDATE , 'DD/01/YYYY') AS JANEIRO_ANO_CORRENTE
TO_DATE( SYSDATE , 'DD/02/YYYY') AS FEVEREIRO ANO_CORRENTE
TO_DATE( SYSDATE , 'DD/03/YYYY') AS MARÇO_ANO_CORRENTE
.
.
.
TO_DATE( SYSDATE , 'DD/01/YYYY+1') AS JANEIRO_PROX_ANO
TO_DATE( SYSDATE , 'DD/01/YYYY+1') AS FEVEREIRO_PROX_ANO
TO_DATE( SYSDATE , 'DD/01/YYYY+1') AS MARCO_PROX_ANO
FROM TABELA
WHERE COD = 1

Share this post


Link to post
Share on other sites

Como é a estrutura da tabela , como quer que saiam os dados ?

Share this post


Link to post
Share on other sites

É uma tabela de projetos futuros, onde existem colunas de valor TOTAL do projeto, data inicio projeto, duracao do projeto, etc.

Eu preciso que os dados saiam da seguinte forma:

ID_PROJETO,
NOME_PROJETO,

CUSTO_TOTAL_PROJETO,

CUSTO_PROJETO_JANEIRO_ATUAL,

CUSTO_PROJETO_FEVEREIRO_ATUAL,

EX: CUSTO DO PROJETO ATUAL ATÉ DEZEMRO....
CUSTO_PROJETO_JANEIRO_PROXIMO_ANO,

CUSTO_PROJETO_FEVEREIRO_PROXIMO_ANO,

EX: CUSTO DO PROJETO PROXIMO ANO ATÉ DEZEMRO....

Eu fiz o seguinte código:

--Importe ponderado(IMPLANTACCION ENERO)
(CASE A.ID_TIPO_PREVENTA
--'Alquiler'
WHEN 1 THEN (CASE
WHEN TO_CHAR(A.FECHA_FIRMA_PREVISTA,'yyyymm') = TO_CHAR(SYSDATE,'yyyymm') THEN FACT_IMP_PREV
WHEN TO_CHAR(A.FECHA_FIRMA_PREVISTA,'yyyymm') < TO_CHAR(SYSDATE,'yyyymm') THEN 0
WHEN TO_CHAR(A.FECHA_FIRMA_PREVISTA,'yyyymm') > TO_CHAR(SYSDATE,'yyyymm') THEN (CASE
WHEN SYSDATE(MES) > A.FECHA_FIRMA_PREVISTA + A.DURACION_ALQUILER THEN 0
ELSE VALOR TOTAL DO ALUGUEL /A.DURACION_ALQUILER
END)
END)
--'Licencias a la firma'
WHEN 2 THEN (CASE
--Si la fecha firma es menor que a fecha atual el proyecto no empezo y no hay dinero
WHEN A.FECHA_FIRMA_PREVISTA < CURRENT_DATE THEN 0
WHEN A.FECHA_FIRMA_PREVISTA >= CURRENT_DATE THEN (CASE
WHEN (((TRUNC(SYSDATE )- A.FECHA_FIRMA_PREVISTA)/ A.DURACION_PREVISTA) * 100) <= 9 THEN 0
WHEN (((TRUNC(SYSDATE )- A.FECHA_FIRMA_PREVISTA)/ A.DURACION_PREVISTA) * 100) > 10 THEN FACT_IMP_PREV * 0.3
WHEN (((TRUNC(SYSDATE )- A.FECHA_FIRMA_PREVISTA)/ A.DURACION_PREVISTA) * 100) > 30 THEN FACT_IMP_PREV * 0.3
WHEN (((TRUNC(SYSDATE )- A.FECHA_FIRMA_PREVISTA)/ A.DURACION_PREVISTA) * 100) >= 100 THEN FACT_IMP_PREV * 0.4
END)
END)
--'Licencias distribuidas'
WHEN 3 THEN
--'Manual'
WHEN 4 THEN
-- 'Manual económico'
WHEN 5 THEN
END) IMP_POND_ENERO_ATUAL
Eu estou pensando em pegar a data atual através de um SYSDATE e então subtituir apenas o mes e o ano.
por exemplo:
SYSDATE = 19/10/2016
TROCAR O MES PARA SABER SE O MES DE JANEIRO POSSUI FATURAMENTO
Trocar o mes 10 por 01. Novo Sysdate: 19/01/2016
Então um projeto que começa em março/2016 e tem 3 meses de duracao o registro sairia assim:

ID_PROJETO, = 01

NOME_PROJETO, = PROJETO EXEMPLO

CUSTO_TOTAL_PROJETO, = 900

CUSTO_PROJETO_JANEIRO_ATUAL, = 0

CUSTO_PROJETO_FEVEREIRO_ATUAL, = 0

CUSTO_PROJETO_MARÇO_ATUAL, = 300

CUSTO_PROJETO_ABRIL_ATUAL, = 300

CUSTO_PROJETO_MAIO_ATUAL, = 300

CUSTO_PROJETO_JUNHO_ATUAL, = 0

EX: CUSTO DO PROJETO ATUAL ATÉ DEZEMRO.. = 0

CUSTO_PROJETO_JANEIRO_PROXIMO_ANO, = 0

CUSTO_PROJETO_FEVEREIRO_PROXIMO_ANO, = 0

EX: CUSTO DO PROJETO PROXIMO ANO ATÉ DEZEMRO...= 0


CUSTO_PROJETO_FEVEREIRO_ATUAL, = 0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Pedro Vinicius Miguel Dias
      Pessoal, estou estudando o Banco de Dados Oracle e estou tendo um problema pra criar uma nova conexão.
      Durante o curso, o instrutor pede que eu crie duas conexoes, a TESTE com a senha: teste e a PRATICA com a senha :pratica... cada uma com uma senha e etc e elas funcionam.
      Eu por minha conta quis criar outra conexão com outro nome e outra senha, Ex. (User TESTE2 e senha: teste2) e ao testar, o Banco não conecta. Erro ORA-01017.
       
      Alguém consegue me ajudar?
    • By Matsuura
      Estou tentando criar o usuário o Scott, e na internet encontro bastante tutoriais para instalação do HR, para o scott dois que me referenciei foram:
      https://www.profissionaloracle.com.br/swillians/forums/topic/usuario-scott-tiger-banco-oracle-10g-express-edition-xe/
      https://docs.oracle.com/database/121/COMSC/installation.htm#COMSC00007
       
      no primeiro link que tentei seguir não encontrei após a intalação o arquivo "demobld.sql"estou enviando a imagem com nome "sql1" e "sql2" que mostram a minha tentativa de instalação, com as mensagens de erros que me retornaram, no segundo link mostra as instalações de schemas, mas não mostra especificamente o Scott. 
      Espero que possam me ajudar, estou a mais de duas semanas tentando sem exito.


    • By NaPraia
      Buenas,
       
      alguém já gerou arquivo em pdf?
       
      eu já usei utl_file e text_io para gerar excel mas para pdf não sei se dá, sabem?
      tenho pesquisado e falam do BI Publisher, já usaram?
    • By Mvc
      Olá,
      Gostaria de fazer uma query mas o retorno ou vem ou não vem dados. Vou citar exemplos.
       
      Me ajudem PF se o melhor caso é union ou outro?
       
      1) Tabela 1 e tabela 2 com campos distintos e um campo em comum com Join no campo card.
      Resultado: No meu select qdo tem dados nas 2 tabelas então retornam todos em comum em uma única linha.
       
      Tabela 1(id, card)
      1, xxx
      2, yyy
      3, zzz
      Tabela 2 (id, card, fraude)
      1, xxx, sim 
      2, yyy, sim
      3, zzz, pendente
       
      Select a.id, a.card, b.card, b.fraude
      from t1 a,t2 b
      where  a.card=b.card;
       
      Retorno:
      Id,Card,Card,fraude
      1, xxx,xxx,sim
      2, yyy,yyy,sim
      3, zzz,zzz,pendente
       
      O problema é qdo na tabela 2 não tem o dado:
      2)Tabela 1 e tabela 2 com campos distintos e um campo em comum com Join no campo card.
      Resultado: No meu select qdo tem dados na tabela 1 e não tiver dado na tabela 2 então retornam linha que só tem na tabela 1.
       
       
      Tabela 1(id, card)
      1, xxx
      2, yyy
      3, zzz
      4,xyz
       
      Tabela 2 (id, card, fraude)
      1, xxx, sim 
      2, yyy, sim
      3, zzz, pendente
       
      Select a.id, a.card, b.card, b.fraude
      from t1 a,t2 b
      where  a.card=b.card;
       
      Retorno:
      Id,Card,Card,fraude
      Nenhuma linha
      Ou não estou certo, retorna igual ao exemplo1:
      1, xxx,xxx,sim
      2, yyy,yyy,sim
      3, zzz,zzz,pendente
       
      Pergunto, neste exemplo 2 como faço pra retornar somente todas as linhas e se não tiver a linha na tabela 2 ficar com estes campos null? 
       
      Desta forma;
       
      Retorno:
      Id,Card,Card,fraude
      1, xxx,xxx,sim
      2, yyy,yyy,sim
      3, zzz,zzz,pendente
      4,xyz,null,null
      Ou no lugar de null, ficar vazia as colunas REF a tabela 2.
       
      Na vdd são exemplos, mas a qtd de Join é mais complexos
      Muito obrigado!!!!
       
       
       
       
    • By NaPraia
      buenas
       
      no sistema eu tenho uma tabela A com um campo que é do tipo NUMBER
      um outro sistema, tem uma tabela B que se relaciona com esse campo da tabela A, é que é do tipo NUMBER(19,2)
      Se relacionam corretamente mas não foi possível criar a constraint de FK
       
      não estou pensando em alter table pois pode gerar um caos no sistema
       
      verificar por trigger se já existe?
       
      obrigado
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.