36 lines
2.2 KiB
Transact-SQL
36 lines
2.2 KiB
Transact-SQL
CREATE FUNCTION [dbo].[GeneraChiaveContratto]
|
|
(
|
|
@TipoProdotto varchar(5)='',
|
|
@CodInterno varchar(13)='', @CodMAF varchar(13)='', @CodISIN varchar(16)='', @CodSottoprodotto varchar(13)='',
|
|
@CodiceContratto varchar(11)='',@NumeroPolizza varchar(11)= '', @Conto varchar(12)= '',
|
|
@Rubricato varchar(4)='',@CustodiaGaranzia varchar(1)='',
|
|
@Termid varchar(8)='', @Anno decimal(3)=0, @Prog decimal(9)=0
|
|
)
|
|
RETURNS varchar(123)
|
|
AS
|
|
BEGIN
|
|
-- Questa funzione concatena i dati dormando una stringa unica
|
|
DECLARE @ResultVar VARCHAR(123)
|
|
DECLARE @t1 VARCHAR(63)
|
|
DECLARE @tp VARCHAR(5)
|
|
DECLARE @t2 VARCHAR(60)
|
|
declare @AnnoS as varchar(3)
|
|
declare @ProgS as varchar(9)
|
|
set @AnnoS = cast(@Anno as varchar(3))
|
|
set @ProgS = cast(@Prog as varchar(9))
|
|
set @t2= '@'+ rtrim(isnull(@CodInterno, '')) + rtrim(isnull(@CodMAF, '')) + rtrim(isnull(@CodISIN, '')) + rtrim(isnull(@CodSottoprodotto, ''))
|
|
set @tp = rtrim(@TipoProdotto)+ '@'
|
|
if len(rtrim(isnull(@Conto, ''))) <12 set @Conto= REPLICATE ( '0' ,12-len(rtrim(isnull(@Conto, ''))) ) +rtrim(isnull(@Conto, ''))
|
|
if len(rtrim(isnull(@Rubricato, ''))) <3 set @Rubricato= REPLICATE ( '0' ,3-len(rtrim(isnull(@Rubricato, ''))) ) +rtrim(isnull(@Rubricato, ''))
|
|
if len(rtrim(isnull(@CustodiaGaranzia, ''))) <1 set @CustodiaGaranzia= '0'
|
|
if len(rtrim(isnull(@NumeroPolizza, ''))) <11 set @NumeroPolizza= REPLICATE ( '0' ,11-len(rtrim(isnull(@NumeroPolizza, ''))) ) +rtrim(isnull(@NumeroPolizza, ''))
|
|
if len(rtrim(isnull(@Termid, ''))) <8 set @Termid= REPLICATE ( '0' ,8-len(rtrim(isnull(@Termid, ''))) ) +rtrim(isnull(@Termid, ''))
|
|
if len(rtrim(isnull(@AnnoS, 0))) <3 set @AnnoS= REPLICATE ( '0' ,3-len(rtrim(isnull(@AnnoS, 0))) ) +rtrim(isnull(@AnnoS, 0))
|
|
if len(rtrim(isnull(@ProgS, 0))) <9 set @ProgS= REPLICATE ( '0' ,9-len(rtrim(isnull(@ProgS, 0))) ) +rtrim(isnull(@ProgS, 0))
|
|
set @t1= rtrim(isnull(@CodiceContratto,'e'))+rtrim(isnull(@Conto,'e'))+ rtrim(isnull(@Rubricato,'e'))+
|
|
rtrim(isnull(@CustodiaGaranzia, 'e'))+ rtrim(isnull(@NumeroPolizza,'e'))+rtrim(isnull(@Termid, 'e'))+
|
|
rtrim(isnull(@AnnoS, 'e'))+rtrim(isnull(@ProgS, 'e'))
|
|
set @ResultVar = isnull(@tp,'tp') +isnull(@t1,'1') + isnull(@t2,'2')
|
|
-- Return the result of the function
|
|
RETURN @ResultVar
|
|
END |