UFN_MKTASKLADDER_VALUESTRING
Returns a table containing the ask amounts based on an ask ladder ID and an entry amount.
Return
Return Type |
---|
nvarchar(4000) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ASKLADDERID | uniqueidentifier | IN | |
@ENTRYAMOUNT | money | IN |
Definition
Copy
CREATE function dbo.[UFN_MKTASKLADDER_VALUESTRING]
(
@ASKLADDERID uniqueidentifier,
@ENTRYAMOUNT money = null
)
returns nvarchar(4000)
as
begin
declare @VALUE nvarchar(4000);
set @ENTRYAMOUNT = dbo.[UFN_MKTASKLADDER_FIXENTRYAMOUNT](@ASKLADDERID, @ENTRYAMOUNT);
set @VALUE = (
(case when @ENTRYAMOUNT is null then
(select
isnull((case when [I].[TYPECODE] = 0 then '+ ' when [I].[TYPECODE] = 1 then '* ' else [L].[CURRENCYSYMBOL] end) + cast(cast([I].[ITEMVALUE1] as money) as nvarchar(20)), '') +
isnull(', ' + (case when [I].[TYPECODE] = 0 then '+ ' when [I].[TYPECODE] = 1 then '* ' else [L].[CURRENCYSYMBOL] end) + cast(cast([I].[ITEMVALUE2] as money) as nvarchar(20)), '') +
isnull(', ' + (case when [I].[TYPECODE] = 0 then '+ ' when [I].[TYPECODE] = 1 then '* ' else [L].[CURRENCYSYMBOL] end) + cast(cast([I].[ITEMVALUE3] as money) as nvarchar(20)), '') +
isnull(', ' + (case when [I].[TYPECODE] = 0 then '+ ' when [I].[TYPECODE] = 1 then '* ' else [L].[CURRENCYSYMBOL] end) + cast(cast([I].[ITEMVALUE4] as money) as nvarchar(20)), '') +
isnull(', ' + (case when [I].[TYPECODE] = 0 then '+ ' when [I].[TYPECODE] = 1 then '* ' else [L].[CURRENCYSYMBOL] end) + cast(cast([I].[ITEMVALUE5] as money) as nvarchar(20)), '') +
(case when len(coalesce([I].[WRITEINTEXT], ''))>0 then ', ' + [I].[WRITEINTEXT] else '' end)
from dbo.[MKTASKLADDER] as [L]
left join dbo.[MKTASKLADDERITEM] as [I] on ([L].[ID] = [I].[ASKLADDERID] and @ENTRYAMOUNT between [MINIMUMENTRYAMOUNT] and ([NEXTMINIMUMENTRYAMOUNT] - .0001))
where [L].[ID] = @ASKLADDERID)
else
(select
isnull([L].[CURRENCYSYMBOL] + cast(cast(dbo.[UFN_MKTASKLADDER_CALCVALUE]([I].[TYPECODE], @ENTRYAMOUNT,[I].[ITEMVALUE1], [I].[ROUNDTOAMOUNT], [I].[MINIMUMENTRYAMOUNT]) as int) as nvarchar(20)), '') +
isnull(', ' + [L].[CURRENCYSYMBOL] + cast(cast(dbo.[UFN_MKTASKLADDER_CALCVALUE]([I].[TYPECODE], @ENTRYAMOUNT,[I].[ITEMVALUE2], [I].[ROUNDTOAMOUNT], [I].[MINIMUMENTRYAMOUNT]) as int) as nvarchar(20)), '') +
isnull(', ' + [L].[CURRENCYSYMBOL] + cast(cast(dbo.[UFN_MKTASKLADDER_CALCVALUE]([I].[TYPECODE], @ENTRYAMOUNT,[I].[ITEMVALUE3], [I].[ROUNDTOAMOUNT], [I].[MINIMUMENTRYAMOUNT]) as int) as nvarchar(20)), '') +
isnull(', ' + [L].[CURRENCYSYMBOL] + cast(cast(dbo.[UFN_MKTASKLADDER_CALCVALUE]([I].[TYPECODE], @ENTRYAMOUNT,[I].[ITEMVALUE4], [I].[ROUNDTOAMOUNT], [I].[MINIMUMENTRYAMOUNT]) as int) as nvarchar(20)), '') +
isnull(', ' + [L].[CURRENCYSYMBOL] + cast(cast(dbo.[UFN_MKTASKLADDER_CALCVALUE]([I].[TYPECODE], @ENTRYAMOUNT,[I].[ITEMVALUE5], [I].[ROUNDTOAMOUNT], [I].[MINIMUMENTRYAMOUNT]) as int) as nvarchar(20)), '') +
(case when len(coalesce([I].[WRITEINTEXT], '')) > 0 then ', ' + [I].[WRITEINTEXT] else '' end)
from dbo.[MKTASKLADDER] as [L]
left join dbo.[MKTASKLADDERITEM] as [I] on ([L].[ID] = [I].[ASKLADDERID] and @ENTRYAMOUNT between [MINIMUMENTRYAMOUNT] and ([NEXTMINIMUMENTRYAMOUNT] - .0001))
where [L].[ID] = @ASKLADDERID)
end)
);
return @VALUE
end