USP_MKTSEGMENTLIST_GETHISTORICALDATALIST
Returns a list of the import history for a list segment.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTID | uniqueidentifier | IN | |
@STATUSCODE | tinyint | IN | |
@CURRENCYCODE | tinyint | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTLIST_GETHISTORICALDATALIST]
(
@SEGMENTID uniqueidentifier,
@STATUSCODE tinyint = null,
@CURRENCYCODE tinyint = null
)
as
set nocount on;
set @STATUSCODE = isnull(@STATUSCODE, 0);
set @CURRENCYCODE = isnull(@CURRENCYCODE, 0);
select
[MKTSEGMENTLIST].[ID],
row_number() over (order by [MKTSEGMENTLIST].[DATEADDED]) as [SEQUENCE],
(case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTSEGMENT].[NAME] else [MKTSEGMENTLISTHISTORICAL].[SEGMENTNAME] end) as [SEGMENTNAME],
(case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTSEGMENT].[DESCRIPTION] else [MKTSEGMENTLISTHISTORICAL].[SEGMENTDESCRIPTION] end) as [SEGMENTDESCRIPTION],
(case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTSEGMENT].[CODE] else [MKTSEGMENTLISTHISTORICAL].[SEGMENTCODE] end) as [SEGMENTCODE],
(select [DESCRIPTION] from dbo.[MKTSEGMENTCATEGORYCODE] where [ID] = (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTSEGMENT].[SEGMENTCATEGORYCODEID] else [MKTSEGMENTLISTHISTORICAL].[SEGMENTCATEGORYCODEID] end)) as [SEGMENTCATEGORY],
[MKTSEGMENTLIST].[STATUSCODE],
[MKTSEGMENTLIST].[STATUS],
[MKTSEGMENTLIST].[TOTALRECORDCOUNT],
[MKTSEGMENTLIST].[DUPLICATERECORDCOUNT],
[MKTSEGMENTLIST].[ORDERDATE],
[MKTSEGMENTLIST].[EXPIRATIONDATE],
[MKTSEGMENTLIST].[NUMBEROFCONTACTS],
[MKTSEGMENTLIST].[RENTALQUANTITY],
case @CURRENCYCODE
when 1 then (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[ORGANIZATIONBASERENTALCOST] else [MKTSEGMENTLISTHISTORICAL].[ORGANIZATIONLISTBASERENTALCOST] end)
else (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[BASERENTALCOST] else [MKTSEGMENTLISTHISTORICAL].[LISTBASERENTALCOST] end) end as [LISTBASERENTALCOST],
(case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[BASERENTALCOSTBASISCODE] else [MKTSEGMENTLISTHISTORICAL].[LISTBASERENTALCOSTBASISCODE] end) as [LISTBASERENTALCOSTBASISCODE],
case @CURRENCYCODE
when 1 then [MKTSEGMENTLIST].[ORGANIZATIONRENTALCOSTADJUSTMENT]
else [MKTSEGMENTLIST].[RENTALCOSTADJUSTMENT] end [RENTALCOSTADJUSTMENT],
[MKTSEGMENTLIST].[RENTALCOSTBASISCODE],
[MKTSEGMENTLIST].[EXCHANGEQUANTITY],
case @CURRENCYCODE
when 1 then (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[ORGANIZATIONBASEEXCHANGECOST] else [MKTSEGMENTLISTHISTORICAL].[ORGANIZATIONLISTBASEEXCHANGECOST] end)
else (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[BASEEXCHANGECOST] else [MKTSEGMENTLISTHISTORICAL].[LISTBASEEXCHANGECOST] end) end as [LISTBASEEXCHANGECOST],
(case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[BASEEXCHANGECOSTBASISCODE] else [MKTSEGMENTLISTHISTORICAL].[LISTBASEEXCHANGECOSTBASISCODE] end) as [LISTBASEEXCHANGECOSTBASISCODE],
case @CURRENCYCODE
when 1 then [MKTSEGMENTLIST].[ORGANIZATIONEXCHANGECOSTADJUSTMENT]
else [MKTSEGMENTLIST].[EXCHANGECOSTADJUSTMENT] end [EXCHANGECOSTADJUSTMENT],
[MKTSEGMENTLIST].[EXCHANGECOSTBASISCODE],
[MKTSEGMENTLIST].[RECEIVEDVIA],
--Total base cost
case @CURRENCYCODE
when 1 then
((case when (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[BASERENTALCOSTBASISCODE] else [MKTSEGMENTLISTHISTORICAL].[LISTBASERENTALCOSTBASISCODE] end) = 1 then --Per thousand
cast([MKTLIST].[ORGANIZATIONBASERENTALCOST] * ([MKTSEGMENTLIST].[RENTALQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTLIST].[ORGANIZATIONBASERENTALCOST]
end)
+
(case when (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[BASEEXCHANGECOSTBASISCODE] else [MKTSEGMENTLISTHISTORICAL].[LISTBASEEXCHANGECOSTBASISCODE] end) = 1 then --Per thousand
cast([MKTLIST].[ORGANIZATIONBASEEXCHANGECOST] * ([MKTSEGMENTLIST].[EXCHANGEQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTLIST].[ORGANIZATIONBASEEXCHANGECOST]
end))
else
((case when (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[BASERENTALCOSTBASISCODE] else [MKTSEGMENTLISTHISTORICAL].[LISTBASERENTALCOSTBASISCODE] end) = 1 then --Per thousand
cast([MKTLIST].[BASERENTALCOST] * ([MKTSEGMENTLIST].[RENTALQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTLIST].[BASERENTALCOST]
end)
+
(case when (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[BASEEXCHANGECOSTBASISCODE] else [MKTSEGMENTLISTHISTORICAL].[LISTBASEEXCHANGECOSTBASISCODE] end) = 1 then --Per thousand
cast([MKTLIST].[BASEEXCHANGECOST] * ([MKTSEGMENTLIST].[EXCHANGEQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTLIST].[BASEEXCHANGECOST]
end)) end as [TOTALBASECOST],
--Total cost adjustments
case @CURRENCYCODE
when 1 then
((case when [MKTSEGMENTLIST].[RENTALCOSTBASISCODE] = 1 then --Per thousand
cast([MKTSEGMENTLIST].[ORGANIZATIONRENTALCOSTADJUSTMENT] * ([MKTSEGMENTLIST].[RENTALQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTSEGMENTLIST].[ORGANIZATIONRENTALCOSTADJUSTMENT]
end)
+
(case when [MKTSEGMENTLIST].[EXCHANGECOSTBASISCODE] = 1 then --Per thousand
cast([MKTSEGMENTLIST].[ORGANIZATIONEXCHANGECOSTADJUSTMENT] * ([MKTSEGMENTLIST].[EXCHANGEQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTSEGMENTLIST].[ORGANIZATIONEXCHANGECOSTADJUSTMENT]
end))
else
((case when [MKTSEGMENTLIST].[RENTALCOSTBASISCODE] = 1 then --Per thousand
cast([MKTSEGMENTLIST].[RENTALCOSTADJUSTMENT] * ([MKTSEGMENTLIST].[RENTALQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTSEGMENTLIST].[RENTALCOSTADJUSTMENT]
end)
+
(case when [MKTSEGMENTLIST].[EXCHANGECOSTBASISCODE] = 1 then --Per thousand
cast([MKTSEGMENTLIST].[EXCHANGECOSTADJUSTMENT] * ([MKTSEGMENTLIST].[EXCHANGEQUANTITY] / cast(1000 as decimal(20,5))) as money)
else
[MKTSEGMENTLIST].[EXCHANGECOSTADJUSTMENT]
end)) end as [TOTALCOSTADJUSTMENT],
(case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[NAME] else [MKTSEGMENTLISTHISTORICAL].[LISTNAME] end) as [LISTNAME],
(case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[DESCRIPTION] else [MKTSEGMENTLISTHISTORICAL].[LISTDESCRIPTION] end) as [LISTDESCRIPTION],
(case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[CODE] else [MKTSEGMENTLISTHISTORICAL].[LISTCODE] end) as [LISTCODE],
(select [NAME] from dbo.[CONSTITUENT] where [ID] = (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[VENDORID] else [MKTSEGMENTLISTHISTORICAL].[LISTVENDORID] end)) as [LISTVENDOR],
(select [DESCRIPTION] from dbo.[MKTLISTCATEGORYCODE] where [ID] = (case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTLIST].[LISTCATEGORYCODEID] else [MKTSEGMENTLISTHISTORICAL].[LISTCATEGORYCODEID] end)) as [LISTCATEGORY],
[MKTLISTLAYOUT].[NAME] as [LAYOUTNAME],
[MKTSEGMENTLIST].[FILENAME],
(case when [MKTSEGMENTLISTHISTORICAL].[ID] is null then [MKTSEGMENT].[DATECHANGED] else [MKTSEGMENTLISTHISTORICAL].[DATEADDED] end) as [DATEADDED],
(case when [MKTSEGMENTLIST].[STATUSCODE] = 5 then [MKTSEGMENTLISTHISTORICAL].[DATEPURGED] else null end) as [DATEPURGED],
case @CURRENCYCODE
when 1 then dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]()
else [MKTLIST].[BASECURRENCYID] end [BASECURRENCYID],
(case when exists(select 1 from dbo.[MKTSEGMENTATIONSEGMENTLIST] where [SEGMENTLISTID] = [MKTSEGMENTLIST].[ID]) then 1 else 0 end) as [INUSEINEFFORT]
from dbo.[MKTSEGMENTLIST]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTLIST].[SEGMENTID]
left join dbo.[MKTSEGMENTLISTHISTORICAL] on [MKTSEGMENTLISTHISTORICAL].[ID] = [MKTSEGMENTLIST].[ID]
inner join dbo.[MKTLIST] on [MKTLIST].[ID] = [MKTSEGMENTLIST].[LISTID]
inner join dbo.[MKTLISTLAYOUT] on [MKTLISTLAYOUT].[ID] = [MKTSEGMENTLIST].[LISTLAYOUTID]
where [MKTSEGMENTLIST].[SEGMENTID] = @SEGMENTID
and [MKTSEGMENTLIST].[TYPECODE] = 0 --Imported only
and (@STATUSCODE = 0 or [MKTSEGMENTLIST].[STATUSCODE] = @STATUSCODE)
order by [MKTSEGMENTLIST].[DATEADDED] desc;
return 0;