Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

funcion q devuelva las cuotas pagadas de los ultimos 7 dias

Estas en el tema de funcion q devuelva las cuotas pagadas de los ultimos 7 dias en el foro de PostgreSQL en Foros del Web. hola amigos, estoy tratando de hacer una funcion en postgre q me devuelva las cuotas pagadas de los ultimos 7 dias a contar de una ...
  #1 (permalink)  
Antiguo 16/11/2010, 16:12
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 11 meses
Puntos: 0
funcion q devuelva las cuotas pagadas de los ultimos 7 dias

hola amigos, estoy tratando de hacer una funcion en postgre q me devuelva las cuotas pagadas de los ultimos 7 dias a contar de una fecha q tengo en un campo date, nunca he trabajado con fecha en funciones en postgre es por eso que recurro a uds para q me den un impulso de como poder hacerla, agradeceria mucho su guia amigos, de antemano gracias.... bye
  #2 (permalink)  
Antiguo 17/11/2010, 07:21
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: funcion q devuelva las cuotas pagadas de los ultimos 7 dias

r0xdrig0 debes ser mas especifico en lo que quieres.
Las fechas en funciones se tratan de igual forma a como se hace en consultas SQL.

Podrías poner un ejemplo de lo que quieres hacer?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 17/11/2010, 11:51
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: funcion q devuelva las cuotas pagadas de los ultimos 7 dias

hola huesos, si entiendo q se tratan como una consulta SQL, pero lo q no se es como hacer q se descuente a la fecha dada los 7 dias anteriores a ellas, me explico graficamente; tengo la fecha ('2010-09-09') menos 7 dias q me haga la resta y asi retornar todas las cuotas con las fechas correspondientes a esos ultimos 7 dias anteriores a la fecha dada arriba, como hago esto en la funcion??? como le resto los 7 dias anteriores a la fecha dada y retornar todas las cuotas pagadas dentro de esos dias anteriores a la fecha dada??? esa es mi duda.... agradeceria mucho su ayuda amigos.... de antemano gracias.... bye
  #4 (permalink)  
Antiguo 17/11/2010, 12:04
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: funcion q devuelva las cuotas pagadas de los ultimos 7 dias

Código SQL:
Ver original
  1. pruebas=> SELECT *FROM fechita;
  2.            fec
  3. -------------------------
  4.  2010-11-17 13:02:38.203
  5.  2010-11-13 00:00:00
  6.  2010-11-12 00:00:00
  7.  2010-11-08 00:00:00
  8.  2010-11-06 00:00:00
  9. (5 filas)
  10.  
  11. pruebas=> SELECT now();
  12.             now
  13. ----------------------------
  14.  2010-11-17 13:06:08.765-05
  15. (1 fila)
  16.  
  17. pruebas=> SELECT *FROM fechita WHERE fec BETWEEN (now()::date-INTEGER '7') AND now();
  18.            fec
  19. -------------------------
  20.  2010-11-17 13:02:38.203
  21.  2010-11-13 00:00:00
  22.  2010-11-12 00:00:00
  23. (3 filas)

Fijate que en el ejemplo, hay registrados en la fecha datos de varios días atras. Solo los que están 7 dias antes son aquellos que muestra la consulta.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 17/11/2010, 15:02
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: funcion q devuelva las cuotas pagadas de los ultimos 7 dias

Hola huesos, segui tus indicaciones para realizar lo q mencione dentro de la funcion que es esta:
Código PHP:
CREATE OR REPLACE FUNCTION REST_DIA() RETURNS DATE AS
$$
DECLARE 
CUOTA RECORD;
BEGIN
SELECT 
INTO CUOTA WHERE CUOTA.FECHA BETWEEN (('2010-11-17')::DATE-INTEGER '7');
RETURN 
CUOTA;
END;
$$
LANGUAGE PLPGSQL
pero me da el siguiente error:

***********ERROR*************
ERROR: error de sintaxis al final de la entrada
LINE 1: ...LECT * WHERE $1 BETWEEN (('2010-11-17')::DATE-INTEGER '7')
^
QUERY: SELECT * WHERE $1 BETWEEN (('2010-11-17')::DATE-INTEGER '7')
CONTEXT: SQL statement in PL/PgSQL function "rest_dia" near line 4

***********ERROR***************
declare una variable record factura para recorrer la tabla del mismo nombre y asi realizar las comparaciones para posteriormente retornar la variable record CUOTA para mostrar los resultados, pero me muestra el error q muestro mas arriba..... pq me da ese error si esa variable record deberia tener todo el contenido de la tabla CUOTA???....en q estoy fallando amigos??? porfavor si alguien me puede guiar se lo agradeceria mucho.... de antemano gracias... bye
  #6 (permalink)  
Antiguo 17/11/2010, 15:39
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: funcion q devuelva las cuotas pagadas de los ultimos 7 dias

No veo el FROM por ningún lado.
Que tabla estas consultando?

Lo que tienes es un problema de sintaxis.
revisa bien tu codigo.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 17/11/2010, 15:55
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: funcion q devuelva las cuotas pagadas de los ultimos 7 dias

intentando con el FROM igual me a error ahora lo tengo asi:

Código PHP:
CREATE OR REPLACE FUNCTION REST_DIA() RETURNS DATE AS
$$
DECLARE 
CUOTA RECORD;
BEGIN
SELECT 
FROM CUOTA WHERE CUOTA.FECHA BETWEEN (('2010-11-17')::date-integer '7')
RETURN 
CUOTA;
END;
$$
LANGUAGE PLPGSQL
y ahora me da este error:

*********ERROR*************
ERROR: error de sintaxis en o cerca de «$1»
LINE 1: SELECT * FROM $1 WHERE $2 BETWEEN (('2010-11-17')::date-...
^
QUERY: SELECT * FROM $1 WHERE $2 BETWEEN (('2010-11-17')::date-integer '7') RETURN $1
CONTEXT: SQL statement in PL/PgSQL function "rest_dia" near line 5
****************ERROR***************

debo hacerlo sin variable record??? pq me marca error si el campo y la tabla existen.... q debo cambiar??? agradeceria mucho su guia nuevamente amigos.... de antemano gracias.... bye
  #8 (permalink)  
Antiguo 17/11/2010, 16:02
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: funcion q devuelva las cuotas pagadas de los ultimos 7 dias

r0xdrig0 no lo tomes a mal, pero en varios temas creo que discutimos a fondo el uso de variables record. Busca en el foro los temas donde te he ayudado a realizar triggers y funciones donde con ejemplos claros te muestro el funcionamiento.


Con respecto a tu pregunta inicial, creo que ya fue resuelta.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: dias, funcion, ultimo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:52.