Hola, disculpen la demora es que no estaba en el centro y no tenia acceso al 
correo, muchisimas gracias por las respuestas, ayer mismo estaba trabajando en 
una solucion con la funcion ventana y la clapsula WITH y ya casi me daba la 
solucion, es lo que tu dices anthony me vienen unas ideas maravillosas con eso, 
jajaja. Lastima que despues de tu curso no haya podido trabajar mas seguido en 
esto, asi no tubiera que preguntar tanto, pero practicamente se me ha olvidado 
todo, jajaja 

Saludos 

----- Mensaje original -----

De: "Anthony Sotolongo" <asotolo...@gmail.com> 
Para: "Guillermo E. Villanueva" <guillermo...@gmail.com> 
CC: "Lazaro Garcia" <lazaro3...@gmail.com>, npola...@cuij.edu.cu, 
"pgsql-es-ayuda" <pgsql-es-ayuda@postgresql.org> 
Enviados: Miércoles, 5 de Octubre 2016 7:19:14 
Asunto: Re: [pgsql-es-ayuda] Ayuda con cosulta 



Como función ventana si lo necesita si, pero cual es la partición lo debe 
decidir el, puede que hayan mas campos en la tabla!!! 

y cuando descubra las potencialidades de las funciones ventanas se ponga 
creativo, jeje 


es solo un ejemplo y está con la partición de la tabla completa para que el lo 
ajuste 


Saludos 

On 05/10/16 08:00, Guillermo E. Villanueva wrote: 



Hola, nunca usé lag() pero no debería ser con partición por el paciente? 

El 4 de octubre de 2016, 15:20, Anthony Sotolongo < asotolo...@gmail.com > 
escribió: 

<blockquote>



Hola Polanco, parece que tienes en la mente resolverlo con triggers, lo cual es 
válido y lo que te dice Lazaro es uno de los caminos a resolver la sitaución, 
pero también puedes calcularlo en un SELECT utilizando funciones ventanas para 
la variación diaria y para el otro campo una subconsulta, si tienes muchos 
datos, puede que algún indice en consulta te pueda hacer un poco mas rápida la 
consulta. 

Mira esta consulta: 


SELECT r.*, COALESCE ( peso - lag(peso,1) over ( order by fecha ),0) , COALESCE 
( peso- (select peso from registro where consulta='SI' and 
registro.fecha<r.fecha order by fecha desc limit 1 ),0) 
FROM registro r 

registro es el nombre de tu tabla 

ojala des pie con bola, jeje 





saludos 
On 04/10/16 14:26, Lazaro Garcia wrote: 

<blockquote>

Me parece que lo que debes es crear un trigger before insert, sobre esa tabla, 
de forma tal que en la función que lo implemente puedas buscar el ultimo peso 
del paciente y modificar el registro NEW.incrmento_diario en base al cálculo 
realizado.

Esta página te puede ser de ayuda en el tema de los triggers. Saludos. 
http://www.postgresql.org.es/node/301 -----Mensaje original-----
De: pgsql-es-ayuda-ow...@postgresql.org [ 
mailto:pgsql-es-ayuda-ow...@postgresql.org ] En nombre de npola...@cuij.edu.cu 
Enviado el: martes, 4 de octubre de 2016 12:55
Para: pgsql-es-ayuda@postgresql.org Asunto: [pgsql-es-ayuda] Ayuda con cosulta
Importancia: Alta

Hola a todos, quería ver si me podrían ayudar con una consulta que llevo rato 
tratando de hacerla pero no doy pie con bola, no hay modo que logre crearla, si 
alguno me pudiera ayudar. El problema es el siguiente:

Tengo una tabla con datos como estos:

Paciente        Peso            Fecha           Consulta
Hisomi          89              24/07/2014      SI
Hisomi          89.1            25/07/2014      
Hisomi          89              26/07/2014      
Hisomi          89              27/07/2014      
Hisomi          89.2            28/07/2014      
Hisomi          89.15           29/07/2014      
Hisomi          89.18           30/07/2014      
Hisomi          89.21           31/07/2014      SI
Hisomi          89.24           01/08/2014      
Hisomi          89.27           02/08/2014      
Hisomi          89.3            03/08/2014      
Hisomi          89.33           04/08/2014      
Hisomi          89.36           05/08/2014      
Hisomi          89.39           06/08/2014      
Hisomi          89.42           07/08/2014      SI
Hisomi          89.45           08/08/2014      
Hisomi          89.48           09/08/2014      
Hisomi          89.51           10/08/2014      
Hisomi          89.54           11/08/2014      
Hisomi          89.57           12/08/2014      


Donde llevo el registro de un paciente dado de su variacion de peso diario y 
quisiera agregar 2 columnas mas que almacene al insertar un registro nuevo en 
una la diferencia de peso de ese con respecto al dia anterior y la otra la 
diferencia de peso entre ese dia y el dia de la consulta anterior, algo asi 
como esto.

Paciente        Peso            Fecha                 Consulta          
Incrmento_diario        Incremento_Consulta
Hisomi          89              24/07/2014              SI                      
0                       0
Hisomi          89.1            25/07/2014                                      
0.1                     0.1
Hisomi          89              26/07/2014                                      
-0.1                    0
Hisomi          89              27/07/2014                                      
0                       0
Hisomi          89.2            28/07/2014                                      
0.2                     0.2
Hisomi          89.15           29/07/2014                                      
-0.05                   0.15
Hisomi          89.18           30/07/2014                                      
0.03                    0.18
Hisomi          89.21           31/07/2014              SI                      
0.03                    0.21
Hisomi          89.24           01/08/2014                                      
0.03                    0.03
Hisomi          89.27           02/08/2014                                      
0.03                    0.06
Hisomi          89.3            03/08/2014                                      
0.03                    0.09
Hisomi          89.33           04/08/2014                                      
0.03                    0.12
Hisomi          89              05/08/2014                                      
-0.33                   -0.21
Hisomi          89.1            06/08/2014                                      
0.1                     -0.11
Hisomi          89.15           07/08/2014              SI                      
0.05                    -0.06
Hisomi          89.15           08/08/2014                                      
0                       0
Hisomi          89.24           09/08/2014                                      
0.09                    0.09
Hisomi          89.3            10/08/2014                                      
0.06                    0.15
Hisomi          89.3            11/08/2014                                      
0                       0.15
Hisomi          89.57           12/08/2014                                      
0.27                    0.42


Los dias de consulta no son cada 7 dias, el intervalo es variado, solo que aquí 
coincide con frecuencia semanal.


Gracias de ante mano. Saludos


-
Enviado a la lista de correo pgsql-es-ayuda ( pgsql-es-ayuda@postgresql.org ) 
Para cambiar tu suscripci n: http://www.postgresql.org/mailpref/pgsql-es-ayuda -
Enviado a la lista de correo pgsql-es-ayuda ( pgsql-es-ayuda@postgresql.org 
)
Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda 




</blockquote>


</blockquote>




Responder a