Questione : Controllo di sanità di mente su modifica di UDF

Ho modificato il mio UDF per aggiungere i tassi supplementari per il fine settimana daya e la notte. I tassi dovrebbero ora essere applicati per il giorno/notte allora stessi del giorno della settimana rates.

Does questo sembrare corretto:
class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
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 " del class= " del id= " codeSnippet831386 del
 0 del isnull (weekenddaycost, 0)
                    ALLORA
                     CASO QUANDO datepart (ora, @date) fra datepart (ora, weekenddaystart) e datepart (ora, weekenddayend)
                     ALLORA
                     weekenddaycost
                     ALTRIMENTI
                     weekendnightcost
                     ESTREMITÀ
                    ALTRIMENTI 
                         CASO
                         QUANDO datepart (ora, @date) fra datepart (ora, weekdaystart) e datepart (ora, weekdayend)
                         ALLORA weekdaycost
                         Weeknightcost ALTRO
                         ESTREMITÀ
                    ESTREMITÀ, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
  Da EnergySuiteDB.dbo.Rates
  dove UtilityName=@util 
  E @date fra EffectiveStartDate e EffectiveEndDate 
  Ordine dal desc di identificazione    -- ottenere “l'ultima„ fila che riguarda la data chiesta.

  se @@rowcount = 0
     inserire il @tbl 
     selezionare il principale 1 --EffectiveStartDate, EffectiveEndDate,
                  CASO UNA VOLTA andato (DATENAME (DW, @date), 1) = “S„ e <> 0 del isnull (weekenddaycost, 0)
                       ALLORA
                     CASO QUANDO datepart (ora, @date) fra datepart (ora, weekenddaystart) e datepart (ora, weekenddayend)
                     ALLORA
                     weekenddaycost
                     ALTRIMENTI
                     weekendnightcost
                     ESTREMITÀ
                    ALTRIMENTI 
                         CASO
                         QUANDO datepart (ora, @date) fra datepart (ora, weekdaystart) e datepart (ora, weekdayend)
                         ALLORA weekdaycost
                         Weeknightcost ALTRO
                         ESTREMITÀ
                       ESTREMITÀ, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     Da EnergySuiteDB.dbo.Rates
     dove UtilityName=@util 
     ordine dal desc del EffectiveEndDate   -- l'più alto enddate appartiene “per remare 1„ tutto il tasso difetto/della copertura.
  ritorno 
ESTREMITÀ
class= del

Risposta : Controllo di sanità di mente su modifica di UDF

Bene, penso che abbia bisogno del controllo supplementare in là…

Così, avere uno sguardo a:
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:
ALTERARE LA FUNZIONE [dbo]. [udf_getrates_3] (datetime del @date, @util varchar (50))
RESTITUISCE la tabella del @tbl (SOLDI del chargerate, SOLDI di imposizione, SOLDI del caprate, galleggiante di ChargeCap, fondi StandingDayCharge)
AS
COMINCIARE


  dichiarare il carbone del @dw (1)
  regolare il @dw = ha andato (DATENAME (DW, @date), 1)

  dichiarare il @hr int
  regolare il @hr = il datepart (ora, @date)

  inserire il @tbl 
  selezionare il principale 1 --EffectiveStartDate, EffectiveEndDate, 
         CASO QUANDO @dw = “S„ e (   (@hr fra datepart (ora, weekenddaystart) e datepart (ora, weekenddayend) e isnull (weekenddaycost, 0) <> 0)
                                  o (@hr NON fra datepart (ora, weekenddaystart) e datepart (ora, weekenddayend) e isnull (weekendnightcost, 0) <> 0))
              ALLORA
                     CASO QUANDO @hr fra datepart (ora, weekenddaystart) e datepart (ora, weekenddayend)
                          ALLORA weekenddaycost
                          Weekendnightcost ALTRO
                     ESTREMITÀ
              ALTRIMENTI 
                     CASO QUANDO @hr fra datepart (ora, weekdaystart) e datepart (ora, weekdayend)
                          ALLORA weekdaycost
                          Weeknightcost ALTRO
                     ESTREMITÀ
         ESTREMITÀ, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     Da EnergySuiteDB.dbo.Rates
  dove  UtilityName=@util 
  E @date fra EffectiveStartDate e EffectiveEndDate 
  Ordine dal desc di identificazione    -- ottenere “l'ultima„ fila che riguarda la data chiesta.

  se @@rowcount = 0
     inserire il @tbl 
     selezionare il principale 1 --EffectiveStartDate, EffectiveEndDate, 
         CASO QUANDO @dw = “S„ e (   (@hr fra datepart (ora, weekenddaystart) e datepart (ora, weekenddayend) e isnull (weekenddaycost, 0) <> 0)
                                  o (@hr NON fra datepart (ora, weekenddaystart) e datepart (ora, weekenddayend) e isnull (weekendnightcost, 0) <> 0))
              ALLORA
                     CASO QUANDO @hr fra datepart (ora, weekenddaystart) e datepart (ora, weekenddayend)
                          ALLORA weekenddaycost
                          Weekendnightcost ALTRO
                     ESTREMITÀ
              ALTRIMENTI 
                     CASO QUANDO @hr fra datepart (ora, weekdaystart) e datepart (ora, weekdayend)
                          ALLORA weekdaycost
                          Weeknightcost ALTRO
                     ESTREMITÀ
         ESTREMITÀ, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
     Da EnergySuiteDB.dbo.Rates
     dove UtilityName=@util 
     ordine dal desc del EffectiveEndDate   -- l'più alto enddate appartiene “per remare 1„ tutto il tasso difetto/della copertura.
  ritorno 
ESTREMITÀ
Altre soluzioni  
 
programming4us programming4us