Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-11-2018
NPIdea NPIdea is offline
Miembro
 
Registrado: feb 2005
Posts: 121
Poder: 20
NPIdea Va por buen camino
Poner a 1 un contador si en una fecha de un año si no hay registros en ese año

Hola a todos.
Tengo una tabla con:

ID autonumérico
Número numeros consecutivos (si no existe numero en una fecha, ponerlo a 1, si lo hubiese sumar uno al último)
Fecha : Fecha de inserción

Quisiera hacer un trigger before insert que sume a Numero 1 solo si en ese año hay numeros, sino ponerlo a 1.

ID NUMERO FECHA
1 1 01/05/2018
2 2 06/06/2018


10 1 01/01/2019

Quisiera en el trigger poder hacerlo automáticamente antes de insertarlo.

Gracias
Responder Con Cita
  #2  
Antiguo 21-11-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Intenta así:
Código SQL [-]
SET TERM^;

CREATE TRIGGER EL_TRIGGER FOR LA_TABLA
ACTIVE BEFORE INSERT POSITION 0
AS
  DECLARE VARIABLE CURRYEAR INTEGER;
  DECLARE VARIABLE MAXNUM  INTEGER;
BEGIN
  CURRYEAR = COALESCE(EXTRACT(YEAR FROM NEW.FECHA), 
    EXTRACT(YEAR FROM CURRENT_DATE));
  
   SELECT COALESCE(MAX(NUMERO), 0) FROM LA_TABLA
   WHERE EXTRACT(YEAR FROM FECHA) = :CURRYEAR
   INTO :MAXNUM;
  
  IF (MAXNUM = 0) THEN 
    NEW.NUMERO = 1;
  ELSE
    NEW.NUMERO = MAXNUM  + 1;
END^

SET TERM;^

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 21-11-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por NPIdea Ver Mensaje
si no existe numero en una fecha, ponerlo a 1
que sume a Numero 1 solo si en ese año hay numeros, sino ponerlo a 1.
No se entiende qué quieres decir con eso de los números en una fecha si hay números.
Vale, veo que ecfisa sí lo ha entendido.
Responder Con Cita
  #4  
Antiguo 21-11-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Vale, veo que ecfisa sí lo ha entendido.
No apostaría mi vida a eso

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 22-11-2018
NPIdea NPIdea is offline
Miembro
 
Registrado: feb 2005
Posts: 121
Poder: 20
NPIdea Va por buen camino
Muchas gracias por responder tan rápido y sobre todo por entenderlo, jaja.

Yo tampoco hubiese apostado mi vida.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
poner una fecha con el año del sistema sargento elias Conexión con bases de datos 4 17-10-2008 14:34:13
Contador de registros en Crystal Lizeth Impresión 1 24-03-2007 23:21:03
Poner fecha y hora hook Varios 10 03-08-2004 11:52:37
Contador de registros DBGrid... thecarlos Conexión con bases de datos 3 16-07-2004 21:22:01
poner fecha y hora hook Varios 7 13-05-2004 19:12:22


La franja horaria es GMT +2. Ahora son las 17:41:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi