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 :
|
CHANGER LA FONCTION [dbo]. [udf_getrates_3] (date-heure de @date, @util varchar (50))
RENVOIE la table de @tbl (ARGENT de chargerate, ARGENT de prélèvement, ARGENT de caprate, flotteur de ChargeCap, argent de StandingDayCharge)
AS
COMMENCER
déclarer le char de @dw (1)
placer le @dw = est parti (DATENAME (DW, @date), 1)
déclarer le @hr international
placer le @hr = le datepart (heure, @date)
insérer le @tbl
choisir le principal 1 --EffectiveStartDate, EffectiveEndDate,
CAS QUAND @dw = « S » et ( (@hr entre datepart (heure, weekenddaystart) et datepart (heure, weekenddayend) et isnull (weekenddaycost, 0) <> 0)
ou (@hr PAS entre datepart (heure, weekenddaystart) et datepart (heure, weekenddayend) et isnull (weekendnightcost, 0) <> 0))
PUIS
CAS QUAND @hr entre le datepart (heure, weekenddaystart) et le datepart (heure, weekenddayend)
PUIS weekenddaycost
Weekendnightcost D'AUTRE
EXTRÉMITÉ
AUTREMENT
CAS QUAND @hr entre le datepart (heure, weekdaystart) et le datepart (heure, weekdayend)
PUIS weekdaycost
Weeknightcost D'AUTRE
EXTRÉMITÉ
EXTRÉMITÉ, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
D'EnergySuiteDB.dbo.Rates
là où UtilityName=@util
ET @date entre EffectiveStartDate et EffectiveEndDate
Ordre par le desc d'identification -- obtenir la « dernière » rangée qui couvre la date demandée.
si @@rowcount = 0
insérer le @tbl
choisir le principal 1 --EffectiveStartDate, EffectiveEndDate,
CAS QUAND @dw = « S » et ( (@hr entre datepart (heure, weekenddaystart) et datepart (heure, weekenddayend) et isnull (weekenddaycost, 0) <> 0)
ou (@hr PAS entre datepart (heure, weekenddaystart) et datepart (heure, weekenddayend) et isnull (weekendnightcost, 0) <> 0))
PUIS
CAS QUAND @hr entre le datepart (heure, weekenddaystart) et le datepart (heure, weekenddayend)
PUIS weekenddaycost
Weekendnightcost D'AUTRE
EXTRÉMITÉ
AUTREMENT
CAS QUAND @hr entre le datepart (heure, weekdaystart) et le datepart (heure, weekdayend)
PUIS weekdaycost
Weeknightcost D'AUTRE
EXTRÉMITÉ
EXTRÉMITÉ, climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
D'EnergySuiteDB.dbo.Rates
là où UtilityName=@util
ordre par le desc d'EffectiveEndDate -- l'enddate le plus élevé appartient « pour ramer le 1 » tout le taux de bâche/défaut.
retour
EXTRÉMITÉ
|