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