A partir de dtsaida que é a data da venda.
Em 05/02/2018 17:19, "Tércio Costa [email protected] [oracle_br]" <
[email protected]> escreveu:

>
>
> A data de garantia começa a contar a partir de quando?
>
> Em 5 de fevereiro de 2018 15:42, Eduardo Perdomo [email protected]
> [oracle_br] <[email protected]> escreveu:
>
>>
>>
>> Conseguem ver essa imagem : https://ibb.co/eZ1Y1H
>>
>> 2018-02-05 15:57 GMT-02:00 [email protected] [oracle_br] <
>> [email protected]>:
>>
>>>
>>>
>>> Colega, ** PLEASE ** explica pra gente : essa tal coluna p.prazogarantia
>>> é um Número, ou uma Data, ou o que ?? E SE for um Número, ele representa
>>> qtdade de DIAS, de MESES, de ANOS, ou o que ??? E essa tal outra coluna
>>> f.dtsaida , é REALMENTE uma coluna com datatype DATE ???
>>>  Isso é *** CRÍTICO *** a gente saber, pois no RDBMS Oracle SYSDATE
>>> retorna uma data , e uma substração ou Adição entre DATAs retorna um número
>>> FRACIONÁRIO que é o número de dias MAIS a fração de um dia decorrido...
>>>
>>>  ==> SE REALMENTE essa coluna prazogarantia for o NÚMERO DE DIAS da
>>> garantia, contados a partir da coluna dtsaida que REALMENTE é uma DATA e
>>> não algum tipo de string, MUITO PROVAVELMENTE teu erro tá no FATO de que
>>> dtsaida é uma DATA DO PASSADO, e (ÓBVIO!!!) data de hoje - data do passado
>>> *** NUNCA ** vai dar negativo, exemplo :
>>>
>>> => hoje é dia 05/02/2018 :
>>>
>>> scott@BD_TESTE:SQL>select to_char(sysdate, 'dd/mm/yyyy') from dual;
>>>
>>> TO_CHAR(SY
>>> ----------
>>> 05/02/2018
>>>
>>> scott@BD_TESTE:SQL>
>>>
>>> ==> crio a tabela e insiro uns dadinhos de testes :
>>>
>>> scott@BD_TESTE:SQL>create table TAB_TESTE_GARANTIA (
>>>   2  CODPROD  number,
>>>   3  DTSAIDA  date,
>>>   4  PRAZOGARANTIA number );
>>>
>>> Tabela criada.
>>>
>>> ==> Insiro dois registros, um dentro e outro fora da qtdade de dias
>>> especificada :
>>>
>>> scott@BD_TESTE:SQL>insert into TAB_TESTE_GARANTIA values(1,
>>> TO_DATE('05/01/2018', 'dd/mm/yyyy'), 90);
>>>
>>> 1 linha criada.
>>>
>>> scott@BD_TESTE:SQL>insert into TAB_TESTE_GARANTIA values(2,
>>> TO_DATE('05/01/2015', 'dd/mm/yyyy'), 100);
>>>
>>> 1 linha criada.
>>>
>>> ==> Taí o resultado  :
>>>
>>> scott@BD_TESTE:SQL>select codprod, dtsaida, prazogarantia, sysdate -
>>> dtsaida qtd_dias from TAB_TESTE_GARANTIA;
>>>
>>>   CODPROD DTSAIDA             PRAZOGARANTIA  QTD_DIAS
>>> --------- ------------------- ------------- ---------
>>>         1 05/01/2018 00:00:00            90 31,661065
>>>         2 05/01/2015 00:00:00           100 1127,6611
>>>
>>> scott@BD_TESTE:SQL>
>>>
>>> ==> Vc estaria CERTO em perguntar por negativo apenas se vc estivesse
>>> fazendo data do passado menos data de hoje :
>>>
>>> scott@BD_TESTE:SQL>select codprod, dtsaida, prazogarantia, dtsaida -
>>> sysdate  qtd_dias from TAB_TESTE_GARANTIA;
>>>
>>>   CODPROD DTSAIDA             PRAZOGARANTIA  QTD_DIAS
>>> --------- ------------------- ------------- ---------
>>>         1 05/01/2018 00:00:00            90 -31,66343
>>>         2 05/01/2015 00:00:00           100 -1127,663
>>>
>>> scott@BD_TESTE:SQL>
>>>
>>> []s
>>>
>>>   Chiappa
>>>
>>
>>
>>
>> --
>>
>> Eduardo Perdomo
>> Consultor de Implantação
>> Grupo PC Sistemas - www.grupopc.com.br
>> (21) 6845-8592
>> [email protected]
>> [email protected]
>> Blog: eduardo.perdomo..nom.br <http://eduardo.perdomo.nom.br>
>>
>>
>
>
> --
>
> [image: photo]
> *Tércio Costa, *
> *Oracle Certified SQL Expert, ACE Associate*
> Analista de Dados, Unimed João Pessoa
> m:+55 83 9 9915 9168 <+55+83+9915+9168> | w:https://oraclepress.
> wordpress.com/ <http://oraclepress.wordpress.com/> |
> <http://plus.google.com/+TércioCosta>
> <http://br.linkedin.com/in/terciocosta>
>
> 
>

Responder a