Pergunta : Verificação da sanidade na modificação de UDF

Eu modifiquei meu UDF para adicionar taxas extra para o fim de semana daya e a noite. As taxas devem agora ser aplicadas para o dia/noite então mesmos que o dia útil rates.

Does este olhar correto:
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
>USE notpretty " do class= " do id= " codeSnippet831386 do
 0 do isnull (weekenddaycost, 0)
                    ENTÃO
                     CASO QUANDO datepart (hora, @date) entre o datepart (hora, weekenddaystart) e datepart (hora, weekenddayend)
                     ENTÃO
                     weekenddaycost
                     MAIS
                     weekendnightcost
                     EXTREMIDADE
                    MAIS 
                         CASO
                         QUANDO datepart (hora, @date) entre o datepart (hora, weekdaystart) e datepart (hora, weekdayend)
                         ENTÃO weekdaycost
                         Weeknightcost OUTRO
                         EXTREMIDADE
                    EXTREMIDADE, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
  De EnergySuiteDB.dbo.Rates
  onde UtilityName=@util 
  E @date entre EffectiveStartDate e EffectiveEndDate 
  Ordem pelo desc da identificação    -- começ a “última” fileira que cobre a data pedida.

  se @@rowcount = 0
     introduzir o @tbl 
     selecionar a parte superior 1 --EffectiveStartDate, EffectiveEndDate,
                  CASO QUANDO saido (DATENAME (DW, @date), 1) = “S” e <> 0 do isnull (weekenddaycost, 0)
                       ENTÃO
                     CASO QUANDO datepart (hora, @date) entre o datepart (hora, weekenddaystart) e datepart (hora, weekenddayend)
                     ENTÃO
                     weekenddaycost
                     MAIS
                     weekendnightcost
                     EXTREMIDADE
                    MAIS 
                         CASO
                         QUANDO datepart (hora, @date) entre o datepart (hora, weekdaystart) e datepart (hora, weekdayend)
                         ENTÃO weekdaycost
                         Weeknightcost OUTRO
                         EXTREMIDADE
                       EXTREMIDADE, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     De EnergySuiteDB.dbo.Rates
     onde UtilityName=@util 
     ordem pelo desc de EffectiveEndDate   -- o enddate o mais elevado pertence “para enfileirar 1” toda a taxa da coberta/defeito.
  retorno 
EXTREMIDADE
class= do

Resposta : Verificação da sanidade na modificação de UDF

Bem, eu penso que precisa a verificação extra em lá…

Assim, ter um olhar em:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
ALTERAR A FUNÇÃO [dbo]. [udf_getrates_3] (datetime do @date, @util varchar (50))
RETORNA a tabela do @tbl (DINHEIRO do chargerate, DINHEIRO da arrecadação, DINHEIRO do caprate, flutuador de ChargeCap, o dinheiro de StandingDayCharge)
COMO
COMEÇAR


  declarar o carvão animal do @dw (1)
  ajustar o @dw = saiu (DATENAME (DW, @date), 1)

  declarar o @hr int
  ajustar o @hr = o datepart (hora, o @date)

  introduzir o @tbl 
  selecionar a parte superior 1 --EffectiveStartDate, EffectiveEndDate, 
         CASO QUANDO @dw = “S” e (   (@hr entre o datepart (hora, weekenddaystart) e o datepart (hora, weekenddayend) e o isnull (weekenddaycost, 0) <> 0)
                                  ou (@hr NÃO entre o datepart (hora, weekenddaystart) e o datepart (hora, weekenddayend) e o isnull (weekendnightcost, 0) <> 0))
              ENTÃO
                     CASO QUANDO @hr entre o datepart (hora, weekenddaystart) e o datepart (hora, weekenddayend)
                          ENTÃO weekenddaycost
                          Weekendnightcost OUTRO
                     EXTREMIDADE
              MAIS 
                     CASO QUANDO @hr entre o datepart (hora, weekdaystart) e o datepart (hora, weekdayend)
                          ENTÃO weekdaycost
                          Weeknightcost OUTRO
                     EXTREMIDADE
         EXTREMIDADE, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     De EnergySuiteDB.dbo.Rates
  onde  UtilityName=@util 
  E @date entre EffectiveStartDate e EffectiveEndDate 
  Ordem pelo desc da identificação    -- começ a “última” fileira que cobre a data pedida.

  se @@rowcount = 0
     introduzir o @tbl 
     selecionar a parte superior 1 --EffectiveStartDate, EffectiveEndDate, 
         CASO QUANDO @dw = “S” e (   (@hr entre o datepart (hora, weekenddaystart) e o datepart (hora, weekenddayend) e o isnull (weekenddaycost, 0) <> 0)
                                  ou (@hr NÃO entre o datepart (hora, weekenddaystart) e o datepart (hora, weekenddayend) e o isnull (weekendnightcost, 0) <> 0))
              ENTÃO
                     CASO QUANDO @hr entre o datepart (hora, weekenddaystart) e o datepart (hora, weekenddayend)
                          ENTÃO weekenddaycost
                          Weekendnightcost OUTRO
                     EXTREMIDADE
              MAIS 
                     CASO QUANDO @hr entre o datepart (hora, weekdaystart) e o datepart (hora, weekdayend)
                          ENTÃO weekdaycost
                          Weeknightcost OUTRO
                     EXTREMIDADE
         EXTREMIDADE, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     De EnergySuiteDB.dbo.Rates
     onde UtilityName=@util 
     ordem pelo desc de EffectiveEndDate   -- o enddate o mais elevado pertence “para enfileirar 1” toda a taxa da coberta/defeito.
  retorno 
EXTREMIDADE
Outras soluções  
 
programming4us programming4us