Questione : Modificare lo PS di SQL per ignorare il valore iniziale di inizio

Sto usando lo PS 2 qui sotto per confrontare i valori da una tabella e dalle differenze, risolvo il problema che del

The di costi ecc… sto avendo sono che se la colonna di DATI di HistorianDB.TLData non comincia da zero, il primo valore restituito dallo PS è molto high.

per esempio, la tabella di TLData sono dati di registrazione da un registratore automatico di dati ogni 15mins. Se il primo valore da entrare la colonna di dati è 2000, quindi il valore aumenta 10 unità ogni campione 15min. Tutti i campioni mostreranno una linea accurata sulla tabella che visualizza 10. Tuttavia, il primo datapoint sulla tabella mostrerà un punto enorme di 2000, come vede l'inizio iniziale di 2000, poichè un cambiamento dalla posizione di segnale minimo (o 0), a 2000.

So, di che cosa ho bisogno è di modificare lo PS, di modo che ignora sempre il primo confronto dalla posizione di segnale minimo (o 0 e niente), alla prima fila e confronta soltanto Ro1 e row2.

Hope questo fa sense.
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:
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:
>USE notpretty " del class= " del id= " codeSnippet793221 del
           
class= del

Risposta : Modificare lo PS di SQL per ignorare il valore iniziale di inizio

APPROVAZIONE,

Quello sarà in:

#reportdata dell'AGGIORNAMENTO
REGOLARE DataChange = il #reportdata. Dati - isnull (prev.data, @prevval)
Dal #ReportData
esterni di sinistra uniscono il prev di #reportdata su #reportdata.id - 1 = prev.id


Se ci non è un valore precedente, quindi possiamo fare:

#reportdata dell'AGGIORNAMENTO
REGOLARE DataChange = il #reportdata. Dati - isnull (prev.data, #reportdata. Dati)
Dal #ReportData
esterni di sinistra uniscono il prev di #reportdata su #reportdata.id - 1 = prev.id


Quello inoltre significa che più non abbiamo bisogno di:

@PrevVal STABILITO = isnull ((convertito PRESCELTO del principale 1 (reale, dati) * @grate
                        Da HistorianDB.dbo.TLData
                        DOVE TLInstance = @Meter
                        E timestamp <�>                        E Type=0
                        E (dati) =1 isnumeric
                        ORDINE dal desc) del timestamp, 0)

Penso l'inserto originale nella tabella di reportdata abbia compreso le entrate più ealier che è un'altra opzione - minimizzare tutta l'inesattezza da openin la gamma un po'per l'aggiornamento, quindi che assicurar che segnaliamo soltanto sulla gamma specifica (o rimuovo dalle file della gamma dopo l'aggiornamento).




Altre soluzioni  
 
programming4us programming4us