Re: [oracle_br] Re: [PL/SQL] Dúvida Agrupar Próximos Registros

2019-09-27 Por tôpico Tiago de Assis Pimenta tiagopime...@ymail.com [oracle_br]
 Grande Chiappa,

Era mais ou menos isso que eu precisava sim... De uma dica de uma lógica que 
fosse melhor do que a minha... Irei fazer novos testes e qualquer coisa 
respondo aqui, por enquanto, muito obrigado !!!

[ ]s
Em sexta-feira, 27 de setembro de 2019 09:17:41 BRT, jlchia...@yahoo.com.br 
[oracle_br]  escreveu:  
 
     
Blz ? Parece ser meio enrolada atua regra, demandaria mais do que os 2 minutos 
(máximo) que deixo pra responder, mas numa olhada rápida acho que vc está muito 
muito perto : minha única Ressalva é que vc Absolutamente Não Precisa abrir um 
cursor e ficar fazendo IFs, acredito que vc possa fazer algo tipo :

SELECT inicio, fim, prazo, sum(CASE when prazo+1 = prx_inicio then prazo else 
0) , ...colunas...
  FROM (
   select t.inicio,
    t.fim,
    t.prazo,
    lead(t.inicio - 1) over (order by t.inicio) prx_inicio,
    lead(t.fim) over (order by t.fim) prx_fim,
    lead(t.prazo) over (order by t.prazo) prx_prazo
 from tabela t
 order by t.inicio,
  t.fim,
  t.prazo;
   
   )
   
==> OU SEJA , vc só soma a coluna SE o valor obedece ás tuas regras É essa 
a técnica principal, okdoc ?? Como eu disse, não tive o tempo de mastigar algo 
mais preciso, mas ACREDITO que é por aí

[]s

  Chiappa
  #yiv3789662370 #yiv3789662370 -- #yiv3789662370ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3789662370 
#yiv3789662370ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3789662370 
#yiv3789662370ygrp-mkp #yiv3789662370hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv3789662370 #yiv3789662370ygrp-mkp #yiv3789662370ads 
{margin-bottom:10px;}#yiv3789662370 #yiv3789662370ygrp-mkp .yiv3789662370ad 
{padding:0 0;}#yiv3789662370 #yiv3789662370ygrp-mkp .yiv3789662370ad p 
{margin:0;}#yiv3789662370 #yiv3789662370ygrp-mkp .yiv3789662370ad a 
{color:#ff;text-decoration:none;}#yiv3789662370 #yiv3789662370ygrp-sponsor 
#yiv3789662370ygrp-lc {font-family:Arial;}#yiv3789662370 
#yiv3789662370ygrp-sponsor #yiv3789662370ygrp-lc #yiv3789662370hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3789662370 
#yiv3789662370ygrp-sponsor #yiv3789662370ygrp-lc .yiv3789662370ad 
{margin-bottom:10px;padding:0 0;}#yiv3789662370 #yiv3789662370actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv3789662370 
#yiv3789662370activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv3789662370
 #yiv3789662370activity span {font-weight:700;}#yiv3789662370 
#yiv3789662370activity span:first-child 
{text-transform:uppercase;}#yiv3789662370 #yiv3789662370activity span a 
{color:#5085b6;text-decoration:none;}#yiv3789662370 #yiv3789662370activity span 
span {color:#ff7900;}#yiv3789662370 #yiv3789662370activity span 
.yiv3789662370underline {text-decoration:underline;}#yiv3789662370 
.yiv3789662370attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv3789662370 .yiv3789662370attach div a 
{text-decoration:none;}#yiv3789662370 .yiv3789662370attach img 
{border:none;padding-right:5px;}#yiv3789662370 .yiv3789662370attach label 
{display:block;margin-bottom:5px;}#yiv3789662370 .yiv3789662370attach label a 
{text-decoration:none;}#yiv3789662370 blockquote {margin:0 0 0 
4px;}#yiv3789662370 .yiv3789662370bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv3789662370 
.yiv3789662370bold a {text-decoration:none;}#yiv3789662370 dd.yiv3789662370last 
p a {font-family:Verdana;font-weight:700;}#yiv3789662370 dd.yiv3789662370last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv3789662370 
dd.yiv3789662370last p span.yiv3789662370yshortcuts 
{margin-right:0;}#yiv3789662370 div.yiv3789662370attach-table div div a 
{text-decoration:none;}#yiv3789662370 div.yiv3789662370attach-table 
{width:400px;}#yiv3789662370 div.yiv3789662370file-title a, #yiv3789662370 
div.yiv3789662370file-title a:active, #yiv3789662370 
div.yiv3789662370file-title a:hover, #yiv3789662370 div.yiv3789662370file-title 
a:visited {text-decoration:none;}#yiv3789662370 div.yiv3789662370photo-title a, 
#yiv3789662370 div.yiv3789662370photo-title a:active, #yiv3789662370 
div.yiv3789662370photo-title a:hover, #yiv3789662370 
div.yiv3789662370photo-title a:visited {text-decoration:none;}#yiv3789662370 
div#yiv3789662370ygrp-mlmsg #yiv3789662370ygrp-msg p a 
span.yiv3789662370yshortcuts 
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv3789662370 
.yiv3789662370green {color:#628c2a;}#yiv3789662370 .yiv3789662370MsoNormal 
{margin:0 0 0 0;}#yiv3789662370 o {font-size:0;}#yiv3789662370 
#yiv3789662370photos div {float:left;width:72px;}#yiv3789662370 
#yiv3789662370photos div div {border:1px solid 
#66;min-height:62px;overflow:hidden;width:62px;}#yiv3789662370 
#yiv3789662370photos div label 

[oracle_br] Re: [PL/SQL] Dúvida Agrupar Próximos Registros

2019-09-27 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Blz ? Parece ser meio enrolada atua regra, demandaria mais do que os 2 minutos 
(máximo) que deixo pra responder, mas numa olhada rápida acho que vc está muito 
muito perto : minha única Ressalva é que vc Absolutamente Não Precisa abrir um 
cursor e ficar fazendo IFs, acredito que vc possa fazer algo tipo :

SELECT inicio, fim, prazo, sum(CASE when prazo+1 = prx_inicio then prazo else 
0) , ...colunas...
  FROM (
   select t.inicio,
t.fim,
t.prazo,
lead(t.inicio - 1) over (order by t.inicio) prx_inicio,
lead(t.fim) over (order by t.fim) prx_fim,
lead(t.prazo) over (order by t.prazo) prx_prazo
 from tabela t
 order by t.inicio,
  t.fim,
  t.prazo;
   
   )
   
==> OU SEJA , vc só soma a coluna SE o valor obedece ás tuas regras É essa 
a técnica principal, okdoc ?? Como eu disse, não tive o tempo de mastigar algo 
mais preciso, mas ACREDITO que é por aí

[]s

  Chiappa

[oracle_br] Re: [PL/SQL] Dúvida Agrupar Próximos Registros

2019-09-27 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Blz ? Parece ser meio enrolada atua regra, demandaria mais do que os 2 minutos 
(máximo) que deixo pra responder, mas numa olhada rápida acho que vc está muito 
muito perto : minha única Ressalva é que vc Absolutamente Não Precisa abrir um 
cursor e ficar fazendo IFs, acredito que vc possa fazer algo tipo :

SELECT inicio, fim, prazo, sum(CASE when prazo+1 = prx_inicio then prazo else 
0) , ...colunas...
  FROM (
   select t.inicio,
t.fim,
t.prazo,
lead(t.inicio - 1) over (order by t.inicio) prx_inicio,
lead(t.fim) over (order by t.fim) prx_fim,
lead(t.prazo) over (order by t.prazo) prx_prazo
 from tabela t
 order by t.inicio,
  t.fim,
  t.prazo;
   
   )
   
==> OU SEJA , vc só soma a coluna SE o valor obedece ás tuas regras É essa 
a técnica principal, okdoc ?? Como eu disse, não tive o tempo de mastigar algo 
mais preciso, mas ACREDITO que é por aí

[]s

  Chiappa