Hola grupo
Tengo el siguiente problema:
Esto es para un sistema de requisicion en la cual cada departamento tiene un
numero de requisicion diferente que contiene la siguiente nomenclatura
estos numeros corresponde al departamento 01
04-01-01
este numero de requisicion quiere decir:
04 corresponde al año actual
01 corresponde al codigo del departamento
01 es un numero que se va incrementando
de esta forma se obtiene la RequisicionNumero
lo que sucede es que cuando entre el nuevo año es decir 2005 la requisicion
que continuara deberia ser
04-01-01
04-01-02
04-01-03
05-01-01 *********** Nuevo año*******
05-01-02
05-01-03
donde el 01 del final vuelve a iniciar en 1 porque cambio el año
todo me funciona bien execto que no he podido poner el ultimo numero a
iniciar en uno
Estas son las tablas
CREATE TABLE [dbo].[RequisicionPorDepartamento] (
[RequisicionID] [int] IDENTITY (1, 1) NOT NULL ,
[RequisicionNumero] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[Fecha_Requerida] [datetime] NULL ,
[DepartamentoID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Empleado] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Ubicacion] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Suplidor] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Condicion] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[prioridad] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Anexo] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Nota] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Fecha] [datetime] NULL ,
[Monto] [float] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[Departamento] (
[DepartamentoID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[Nombre] [varchar] (19) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[numero_requisicion] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL
) ON [PRIMARY]
GO
insert into departamento (departamentoID,nombre,numero_requisicion) values
('1','ventas','0')
insert into departamento (departamentoID,nombre,numero_requisicion) values
('2','compras','0')
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [insert_RequisicionPorDepartamento]
@DepartamentoID int = null,
@fecha_requerida [datetime],
@ubicacion [varchar](50),
@Suplidor [varchar](50),
@Prioridad [char](10),
@Monto [float]
AS
declare @RequisicionNumero varchar(20)
Begin tran
update departamento set numero_requisicion = numero_requisicion + 1
where departamentoID = @departamentoID
Set @RequisicionNumero = (select datepart(year,getdate()))
set @RequisicionNumero = substring(@RequisicionNumero,3,3) + '-'
+ (select DepartamentoID from departamento where departamentoID =
@departamentoID)
+ '-'
+ (select numero_requisicion from departamento where departamentoID =
@departamentoID)
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
INSERT INTO [requisiciones].[dbo].[RequisicionPorDepartamento]
(
[RequisicionNumero],
[fecha_requerida],
[DepartamentoID],
[Ubicacion],
[Suplidor],
[Prioridad],
[Monto])
VALUES
(
@RequisicionNumero,
@fecha_requerida,
@DepartamentoID,
@Ubicacion,
@Suplidor,
@Prioridad,
@monto)
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN
Leer las respuestas