Förmiddag I using SPEN och fungerar nedanfört för att gå slutsummor tillbaka från en dataloggerapparat, som är att logga som är accumulative, värderar varje 15mins.
Somehow som jag behöver att tillfoga in i denna SP, kapaciteten att passera en extra param som kallas ”@OccTL” och korshänsvisniner datachange mot datan från HistorianDB.DBO.TLDataen, var TLInstance = för @OccTL.
The data från @OccTL ska är endera 1 eller 0. Om tidsstämpeln behöver att kontrolleras mot de OccTL datan, när värdera för strömtidsstämpeln är 0, datachangen räknas samman till en OffHoursTotal, när de OccTL datan är 1, datachangen räknas samman till OnHoursTotal. Den total- daya_dataen, bör stilla gås tillbaka, som den är för närvarande. Så vi tillfogar precis 2 extra kolonner för OffHoursTotal, och funderare för OnHoursTotal.
I, om @OccTL passeras som 0, OffHourTotalen och OnHourTotalen ignoreras, incase inga historiska data var recorded.
> för
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:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
" codeBody "
" >USE för class= " för 0 för isnull (weekenddaycost, 0))
eller (@hr INTE mellan datepart (timme, weekenddaystart) och datepart (timme, weekenddayend) och <> 0 för isnull (weekendnightcost, 0)))
DÄREFTER
FALL, NÄR @hr mellan datepart (timme, weekenddaystart) och datepart (timme, weekenddayend)
DÄREFTER weekenddaycost
ANNAN weekendnightcost
AVSLUTA
ANNARS
FALL, NÄR @hr mellan datepart (timme, weekdaystart) och datepart (timme, weekdayend)
DÄREFTER weekdaycost
ANNAN weeknightcost
AVSLUTA
AVSLUTA climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
FRÅN EnergySuiteDB.dbo.Rates
var UtilityName=@util
OCH @date mellan EffectiveStartDate och EffectiveEndDate
Beställa vid LEGITIMATION desc -- få ”det sist” ror som täcker bedd daterar.
om @@rowcount = 0
sätt in @tbl
välj bästa 1 --EffectiveStartDate EffectiveEndDate,
FALL, NÄR @dw = ”S” och ((@hr mellan datepart (timme, weekenddaystart) och datepart (timme, weekenddayend) och <> 0 för isnull (weekenddaycost, 0))
eller (@hr INTE mellan datepart (timme, weekenddaystart) och datepart (timme, weekenddayend) och <> 0 för isnull (weekendnightcost, 0)))
DÄREFTER
FALL, NÄR @hr mellan datepart (timme, weekenddaystart) och datepart (timme, weekenddayend)
DÄREFTER weekenddaycost
ANNAN weekendnightcost
AVSLUTA
ANNARS
FALL, NÄR @hr mellan datepart (timme, weekdaystart) och datepart (timme, weekdayend)
DÄREFTER weekdaycost
ANNAN weeknightcost
AVSLUTA
AVSLUTA climateChangeLevyRate, ((chargeablecapacity*capacityrate)), chargeablecapacity, isnull (StandingDayCharge, 0)
FRÅN EnergySuiteDB.dbo.Rates
var UtilityName=@util
beställa vid EffectiveEndDate desc -- högst enddate hör hemma ”ror den 1” all beläggningen/standarden klassar.
retur
AVSLUTA
" klar "
|