Fråga : Ändra SQL-SP för att ignorera initial start värderar

Förmiddag I using den nedanföra SPEN 2 som ska jämföras värderar från en bordlägga, och från skillnaderna, arbete ut kostar förmiddagen för problem I för etc.-…

The den har, är att, om HistorianDB.TLData-DATAkolonnen inte startar från nolla, första värderar gånget tillbaka av SPEN är mycket high.

For example, TLDataen bordlägger loggar data från en datalogger varje 15mins. Om första värderar för att loggas in, datakolonnen är 2000, då värderaförhöjningarna 10 enheter som varje 15min tar prov. Allt tar prov ska show som ett propert fodrar på kartlägga som visar 10. Emellertid den första datapointen på den kartlägga ska showen en enorm grov spik av 2000, som den ser den initiala starten av 2000, som en ändring från ogiltigt (eller 0), till 2000.

So, vad jag behöver, är att ändra SPEN, så att den ignorerar alltid den första jämförelsen från ogiltigt (eller 0 och ingenting), till första ror och jämför endast Ro1, och row2.

Hope detta gör sense.
> 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:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
" codeBody " " >USE för class= " för
" klar "

Svar : Ändra SQL-SP för att ignorera initial start värderar

REKO,

Det ska är i:

UPPDATERING#reportdata
FASTSTÄLLDA DataChange = #reportdata. Data - isnull (prev.data som, är @prevval)
FRÅN #ReportData
lämnat yttre sammanfoga #reportdataprev på #reportdata.id - 1 = prev.id


Om det inte finns ett föregående, värdera, då vi kan göra:

UPPDATERING#reportdata
FASTSTÄLLDA DataChange = #reportdata. Data - isnull (prev.data, #reportdata. Data)
FRÅN #ReportData
lämnat yttre sammanfoga #reportdataprev på #reportdata.id - 1 = prev.id


Det också hjälpmedel som vi behöver ej längre:

FASTSTÄLLDT @PrevVal = VALD isnull ((överträffa 1 verkliga omvänd (, data) * @grate
                        FRÅN HistorianDB.dbo.TLData
                        VAR TLInstance = @Meter
                        OCH tidsstämpel <�>                        OCH Type=0
                        OCH isnumeric (data) =1
                        BESTÄLLA VID tidsstämpeldesc), 0),

Funderare I som det original- mellanlägget in i reportdataen bordlägger, inkluderade mer ealier tillträden som är ett annat alternativ - minimera någon felaktighet vid openin spänna a bet lite för uppdateringen, då se till att vi anmäler endast på närmare detalj spänner (eller ta bort ut ur spänner ror efter uppdateringen).




Andra lösningar  
 
programming4us programming4us