天天看点

sql语句分段分析(销售价格段分析报表)(第一部份)

CREATE FUNCTION GetPhaseCode(@NowValue decimal,@StepLength decimal,@MaxLenth decimal)

RETURNS int

AS

BEGIN 

   Declare @FinValue int,@PhaseValue int

   if @NowValue>=0

   begin

    if @NowValue=0 set @PhaseValue=1

    else

    set @PhaseValue=(@NowValue-1)/@StepLength+1

              set @FinValue=

    case

    when @PhaseValue>(@MaxLenth/@StepLength) then (@MaxLenth/@StepLength)

    ELSE @PhaseValue

   end

   end

   else

    set @FinValue=0

   RETURN @FinValue

END

CREATE FUNCTION GetPhaseName(@NowValue decimal,@StepLength decimal,@MaxLenth decimal)

RETURNS varchar(30)

AS

BEGIN 

   Declare @FinValue varchar(30),@PhaseValue int

   if @NowValue>=0

   begin

    if @NowValue=0 set @PhaseValue=1

   else

     set @PhaseValue=(@NowValue-1)/@StepLength+1

     set @FinValue=

  case

  when @PhaseValue=1 then convert(varchar(10),@StepLength)+'元以下'

               when @PhaseValue>(@MaxLenth/@StepLength) then

  convert(varchar(10),@MaxLenth)+'元以上'

               ELSE convert(varchar(10),@StepLength*(@PhaseValue-1)+1)+'~'+convert(varchar(10),@StepLength*(@PhaseValue))

               end

   end

   else

            set @FinValue='出现的异常'

   RETURN @FinValue

END