CHECKSUM_AGG SQL function
1. Usage of CHECKSUM_AGG to find changes in Order Details
SQL Server Query 1
SELECT
o.OrderID,
CHECKSUM_AGG(CAST(o.Freight AS INT)) OVER (PARTITION BY o.EmployeeID) AS OrderChecksum, -- Check for changes in Orders
CHECKSUM_AGG(od.Quantity * CAST(od.UnitPrice AS INT) * (1 - CAST(od.Discount AS INT))) AS OrderDetailsChecksum -- Check for changes in Order Details
INTO #OrderChecksums
FROM Orders AS o
JOIN [Order Details] AS od ON o.OrderID = od.OrderID
GROUP BY o.OrderID, o.Freight, o.EmployeeID
SELECT * FROM #OrderChecksums
DROP TABLE #OrderChecksums;
Create SQL query with SqlQueryBuilder 1
var (sql1, parameters1) = new SqlQueryBuilder()
.Select()
.Column("o.OrderID", "OrderID")
.Column(new CHECKSUM_AGG(new CAST(new Column("o.Freight"), SqlDataType.INT))
.OVER(new OVER().PARTITION_BY(new Column("o.EmployeeID"))), "OrderChecksum")
.Column(new CHECKSUM_AGG(new ColumnArithmatic("od.Quantity").MULTIPLY(new CAST(new Column("od.UnitPrice"), SqlDataType.INT))
.MULTIPLY().StartBracket(1).SUBTRACT(new CAST(new Column("od.Discount"), SqlDataType.INT)).EndBracket()
), "OrderDetailsChecksum")
.INTO(new Table("#OrderChecksums"))
.From("Orders", "o")
.Join(new List<IJoin>()
{
new INNERJOIN().TableName("[Order Details]","od")
.On(new Column("o.OrderID").Equale(new Column("od.OrderID")))
})
.GroupBy(new GroupBy("o.OrderID","o.Freight","o.EmployeeID"))
.Select().Star().From("#OrderChecksums")
.DropTable(new Table("#OrderChecksums"))
.Build();
Query build by SqlQueryBuilder 1
SELECT o.OrderID AS OrderID,
CHECKSUM_AGG(CAST (o.Freight AS INT)) OVER (PARTITION BY o.EmployeeID) AS OrderChecksum,
CHECKSUM_AGG(od.Quantity * CAST (od.UnitPrice AS INT) * (@pMAIN_2507200155149736170 - CAST (od.Discount AS INT))) AS OrderDetailsChecksum
INTO #OrderChecksums
FROM Orders AS o
INNER JOIN
[Order Details] AS od
ON o.OrderID = od.OrderID
GROUP BY o.OrderID, o.Freight, o.EmployeeID;
SELECT *
FROM #OrderChecksums;
DROP TABLE #OrderChecksums;
Parameters (If used)
Name |
Value |
@pMAIN_2507200155149736170 |
1 |
Query Results 1:
|
OrderID |
OrderChecksum |
OrderDetailsChecksum |
1 |
10258
|
648
|
1571
|
2 |
10270
|
648
|
607
|
3 |
10275
|
648
|
312
|
4 |
10285
|
648
|
902
|
5 |
10292
|
648
|
1300
|
6 |
10293
|
648
|
763
|
7 |
10304
|
648
|
122
|
8 |
10306
|
648
|
456
|
9 |
10311
|
648
|
137
|
10 |
10314
|
648
|
1685
|
11 |
10316
|
648
|
2810
|
12 |
10325
|
648
|
1191
|
13 |
10340
|
648
|
1600
|
14 |
10351
|
648
|
5230
|
15 |
10357
|
648
|
934
|
16 |
10361
|
648
|
1849
|
17 |
10364
|
648
|
819
|
18 |
10371
|
648
|
90
|
19 |
10374
|
648
|
393
|
20 |
10376
|
648
|
420
|
21 |
10377
|
648
|
968
|
22 |
10387
|
648
|
523
|
23 |
10385
|
648
|
700
|
24 |
10393
|
648
|
1458
|
25 |
10394
|
648
|
436
|
26 |
10396
|
648
|
168
|
27 |
10400
|
648
|
2069
|
28 |
10401
|
648
|
3046
|
29 |
10405
|
648
|
400
|
30 |
10453
|
648
|
442
|
31 |
10461
|
648
|
1912
|
32 |
10465
|
648
|
1547
|
33 |
10469
|
648
|
914
|
34 |
10473
|
648
|
212
|
35 |
10482
|
648
|
150
|
36 |
10486
|
648
|
1231
|
37 |
10508
|
648
|
136
|
38 |
10524
|
648
|
2971
|
39 |
10525
|
648
|
820
|
40 |
10537
|
648
|
996
|
41 |
10542
|
648
|
403
|
42 |
10546
|
648
|
1176
|
43 |
10558
|
648
|
1651
|
44 |
10562
|
648
|
470
|
45 |
10567
|
648
|
2827
|
46 |
10579
|
648
|
8
|
47 |
10587
|
648
|
214
|
48 |
10591
|
648
|
254
|
49 |
10604
|
648
|
250
|
50 |
10605
|
648
|
3508
|
51 |
10598
|
648
|
2142
|
52 |
10612
|
648
|
3575
|
53 |
10616
|
648
|
3271
|
54 |
10618
|
648
|
1261
|
55 |
10626
|
648
|
668
|
56 |
10630
|
648
|
854
|
57 |
10653
|
648
|
854
|
58 |
10655
|
648
|
200
|
59 |
10664
|
648
|
539
|
60 |
10665
|
648
|
1191
|
61 |
10668
|
648
|
487
|
62 |
10671
|
648
|
444
|
63 |
10677
|
648
|
954
|
64 |
10680
|
648
|
102
|
65 |
10689
|
648
|
630
|
66 |
10690
|
648
|
894
|
67 |
10709
|
648
|
728
|
68 |
10710
|
648
|
31
|
69 |
10713
|
648
|
1248
|
70 |
10717
|
648
|
685
|
71 |
10718
|
648
|
1312
|
72 |
10733
|
648
|
583
|
73 |
10743
|
648
|
336
|
74 |
10746
|
648
|
1461
|
75 |
10773
|
648
|
1713
|
76 |
10776
|
648
|
6574
|
77 |
10785
|
648
|
358
|
78 |
10788
|
648
|
130
|
79 |
10789
|
648
|
942
|
80 |
10792
|
648
|
104
|
81 |
10800
|
648
|
1593
|
82 |
10813
|
648
|
320
|
83 |
10821
|
648
|
86
|
84 |
10825
|
648
|
992
|
85 |
10827
|
648
|
171
|
86 |
10834
|
648
|
488
|
87 |
10835
|
648
|
803
|
88 |
10842
|
648
|
109
|
89 |
10850
|
648
|
214
|
90 |
10859
|
648
|
995
|
91 |
10877
|
648
|
2009
|
92 |
10886
|
648
|
2997
|
93 |
10888
|
648
|
406
|
94 |
10894
|
648
|
1120
|
95 |
10902
|
648
|
1014
|
96 |
10900
|
648
|
45
|
97 |
10909
|
648
|
421
|
98 |
10910
|
648
|
53
|
99 |
10916
|
648
|
310
|
100 |
10921
|
648
|
1620
|
101 |
10928
|
648
|
104
|
102 |
10946
|
648
|
370
|
103 |
10950
|
648
|
110
|
104 |
10952
|
648
|
460
|
105 |
10968
|
648
|
1126
|
106 |
10969
|
648
|
108
|
107 |
10975
|
648
|
720
|
108 |
10976
|
648
|
920
|
109 |
10981
|
648
|
15840
|
110 |
10984
|
648
|
315
|
111 |
10995
|
648
|
1196
|
112 |
10991
|
648
|
1230
|
113 |
10992
|
648
|
70
|
114 |
11012
|
648
|
34
|
115 |
11023
|
648
|
1308
|
116 |
11027
|
648
|
1171
|
117 |
11038
|
648
|
704
|
118 |
11039
|
648
|
1192
|
119 |
11064
|
648
|
2641
|
120 |
11067
|
648
|
90
|
121 |
11069
|
648
|
360
|
122 |
11071
|
648
|
510
|
123 |
11077
|
648
|
431
|
124 |
11073
|
414
|
182
|
125 |
11070
|
414
|
854
|
126 |
11059
|
414
|
1478
|
127 |
11060
|
414
|
10
|
128 |
11053
|
414
|
2340
|
129 |
11032
|
414
|
7459
|
130 |
11035
|
414
|
1390
|
131 |
11042
|
414
|
361
|
132 |
11028
|
414
|
1632
|
133 |
11013
|
414
|
176
|
134 |
11014
|
414
|
280
|
135 |
11015
|
414
|
364
|
136 |
11020
|
414
|
744
|
137 |
10994
|
414
|
990
|
138 |
11000
|
414
|
822
|
139 |
11001
|
414
|
1209
|
140 |
11005
|
414
|
514
|
141 |
11009
|
414
|
88
|
142 |
11010
|
414
|
618
|
143 |
10985
|
414
|
2044
|
144 |
10989
|
414
|
763
|
145 |
10990
|
414
|
160
|
146 |
10982
|
414
|
966
|
147 |
10983
|
414
|
212
|
148 |
10971
|
414
|
1736
|
149 |
10967
|
414
|
844
|
150 |
10949
|
414
|
2328
|
151 |
10939
|
414
|
654
|
152 |
10912
|
414
|
7768
|
153 |
10915
|
414
|
410
|
154 |
10919
|
414
|
416
|
155 |
10865
|
414
|
14400
|
156 |
10832
|
414
|
461
|
157 |
10858
|
414
|
274
|
158 |
10846
|
414
|
196
|
159 |
10819
|
414
|
482
|
160 |
10810
|
414
|
39
|
161 |
10815
|
414
|
48
|
162 |
10805
|
414
|
2780
|
163 |
10808
|
414
|
380
|
164 |
10798
|
414
|
316
|
165 |
10787
|
414
|
2221
|
166 |
10780
|
414
|
718
|
167 |
10781
|
414
|
947
|
168 |
10752
|
414
|
252
|
169 |
10737
|
414
|
96
|
170 |
10738
|
414
|
51
|
171 |
10734
|
414
|
512
|
172 |
10727
|
414
|
86
|
173 |
10691
|
414
|
7860
|
174 |
10686
|
414
|
1347
|
175 |
10676
|
414
|
398
|
176 |
10683
|
414
|
63
|
177 |
10673
|
414
|
371
|
178 |
10669
|
414
|
570
|
179 |
10657
|
414
|
1274
|
180 |
10663
|
414
|
1948
|
181 |
10620
|
414
|
58
|
182 |
10615
|
414
|
120
|
183 |
10588
|
414
|
3232
|
184 |
10595
|
414
|
1696
|
185 |
10583
|
414
|
1664
|
186 |
10563
|
414
|
49
|
187 |
10561
|
414
|
2788
|
188 |
10552
|
414
|
632
|
189 |
10553
|
414
|
455
|
190 |
10556
|
414
|
840
|
191 |
10541
|
414
|
1725
|
192 |
10515
|
414
|
6906
|
193 |
10516
|
414
|
1055
|
194 |
10502
|
414
|
432
|
195 |
10487
|
414
|
605
|
196 |
10478
|
414
|
500
|
197 |
10471
|
414
|
136
|
198 |
10462
|
414
|
150
|
199 |
10457
|
414
|
1584
|
200 |
10404
|
414
|
694
|
201 |
10398
|
414
|
2380
|
202 |
10407
|
414
|
178
|
203 |
10414
|
414
|
26
|
204 |
10422
|
414
|
50
|
205 |
10392
|
414
|
1450
|
206 |
10388
|
414
|
1040
|
207 |
10379
|
414
|
804
|
208 |
10368
|
414
|
989
|
209 |
10345
|
414
|
2707
|
210 |
10339
|
414
|
3210
|
211 |
10327
|
414
|
432
|
212 |
10312
|
414
|
476
|
213 |
10313
|
414
|
180
|
214 |
10307
|
414
|
408
|
215 |
10300
|
414
|
364
|
216 |
10295
|
414
|
120
|
217 |
10277
|
414
|
772
|
218 |
10280
|
414
|
504
|
219 |
10265
|
414
|
850
|
220 |
10266
|
78
|
360
|
221 |
10251
|
78
|
450
|
222 |
10253
|
78
|
4
|
223 |
10256
|
78
|
510
|
224 |
10283
|
78
|
875
|
225 |
10273
|
78
|
172
|
226 |
10309
|
78
|
497
|
227 |
10321
|
78
|
140
|
228 |
10330
|
78
|
1630
|
229 |
10332
|
78
|
1854
|
230 |
10346
|
78
|
1540
|
231 |
10352
|
78
|
80
|
232 |
10365
|
78
|
408
|
233 |
10362
|
78
|
510
|
234 |
10375
|
78
|
289
|
235 |
10381
|
78
|
112
|
236 |
10384
|
78
|
1673
|
237 |
10391
|
78
|
90
|
238 |
10420
|
78
|
1666
|
239 |
10432
|
78
|
10
|
240 |
10433
|
78
|
840
|
241 |
10434
|
78
|
154
|
242 |
10429
|
78
|
1729
|
243 |
10436
|
78
|
1848
|
244 |
10415
|
78
|
22
|
245 |
10413
|
78
|
1932
|
246 |
10409
|
78
|
132
|
247 |
10410
|
78
|
674
|
248 |
10468
|
78
|
643
|
249 |
10449
|
78
|
1139
|
250 |
10438
|
78
|
69
|
251 |
10441
|
78
|
1750
|
252 |
10442
|
78
|
854
|
253 |
10444
|
78
|
193
|
254 |
10445
|
78
|
14
|
255 |
10479
|
78
|
4888
|
256 |
10484
|
78
|
152
|
257 |
10505
|
78
|
147
|
258 |
10495
|
78
|
212
|
259 |
10492
|
78
|
584
|
260 |
10517
|
78
|
172
|
261 |
10530
|
78
|
934
|
262 |
10540
|
78
|
6583
|
263 |
10547
|
78
|
1908
|
264 |
10548
|
78
|
0
|
265 |
10536
|
78
|
1986
|
266 |
10514
|
78
|
730
|
267 |
10576
|
78
|
63
|
268 |
10568
|
78
|
155
|
269 |
10570
|
78
|
2515
|
270 |
10572
|
78
|
624
|
271 |
10594
|
78
|
302
|
272 |
10581
|
78
|
400
|
273 |
10582
|
78
|
172
|
274 |
10592
|
78
|
267
|
275 |
10619
|
78
|
748
|
276 |
10625
|
78
|
343
|
277 |
10638
|
78
|
2373
|
278 |
10644
|
78
|
920
|
279 |
10662
|
78
|
130
|
280 |
10684
|
78
|
772
|
281 |
10681
|
78
|
746
|
282 |
10682
|
78
|
238
|
283 |
10739
|
78
|
12
|
284 |
10732
|
78
|
360
|
285 |
10742
|
78
|
677
|
286 |
10753
|
78
|
26
|
287 |
10748
|
78
|
1908
|
288 |
10758
|
78
|
400
|
289 |
10759
|
78
|
320
|
290 |
10751
|
78
|
985
|
291 |
10762
|
78
|
3368
|
292 |
10763
|
78
|
394
|
293 |
10712
|
78
|
1047
|
294 |
10715
|
78
|
31
|
295 |
10723
|
78
|
465
|
296 |
10693
|
78
|
1851
|
297 |
10697
|
78
|
217
|
298 |
10699
|
78
|
120
|
299 |
10700
|
78
|
2002
|
300 |
10778
|
78
|
100
|
301 |
10779
|
78
|
640
|
302 |
10765
|
78
|
1680
|
303 |
10768
|
78
|
552
|
304 |
10769
|
78
|
478
|
305 |
10772
|
78
|
3559
|
306 |
10796
|
78
|
1494
|
307 |
10793
|
78
|
180
|
308 |
10806
|
78
|
448
|
309 |
10817
|
78
|
6873
|
310 |
10814
|
78
|
94
|
311 |
10820
|
78
|
1140
|
312 |
10838
|
78
|
1497
|
313 |
10839
|
78
|
907
|
314 |
10831
|
78
|
2396
|
315 |
10854
|
78
|
3482
|
316 |
10855
|
78
|
335
|
317 |
10856
|
78
|
100
|
318 |
10860
|
78
|
503
|
319 |
10903
|
78
|
77
|
320 |
10904
|
78
|
1648
|
321 |
10895
|
78
|
2594
|
322 |
10897
|
78
|
9576
|
323 |
10879
|
78
|
190
|
324 |
10918
|
78
|
1898
|
325 |
10911
|
78
|
434
|
326 |
10924
|
78
|
1848
|
327 |
10925
|
78
|
399
|
328 |
10934
|
78
|
500
|
329 |
10936
|
78
|
570
|
330 |
10938
|
78
|
424
|
331 |
10947
|
78
|
220
|
332 |
10948
|
78
|
2232
|
333 |
10964
|
78
|
1338
|
334 |
10960
|
78
|
194
|
335 |
10974
|
78
|
440
|
336 |
10988
|
78
|
160
|
337 |
11011
|
78
|
944
|
338 |
11006
|
78
|
104
|
339 |
11003
|
78
|
186
|
340 |
11004
|
78
|
214
|
341 |
11021
|
78
|
3610
|
342 |
11049
|
78
|
38
|
343 |
11041
|
78
|
1810
|
344 |
11057
|
78
|
45
|
345 |
11052
|
78
|
1094
|
346 |
11063
|
78
|
600
|
347 |
11061
|
848
|
510
|
348 |
11062
|
848
|
510
|
349 |
11072
|
848
|
4266
|
350 |
11076
|
848
|
98
|
351 |
11044
|
848
|
588
|
352 |
11040
|
848
|
200
|
353 |
11018
|
848
|
48
|
354 |
11029
|
848
|
232
|
355 |
11024
|
848
|
1243
|
356 |
11026
|
848
|
1002
|
357 |
11002
|
848
|
718
|
358 |
10996
|
848
|
560
|
359 |
10980
|
848
|
320
|
360 |
10966
|
848
|
852
|
361 |
10972
|
848
|
255
|
362 |
10943
|
848
|
343
|
363 |
10945
|
848
|
250
|
364 |
10935
|
848
|
462
|
365 |
10930
|
848
|
1786
|
366 |
10931
|
848
|
676
|
367 |
10926
|
848
|
375
|
368 |
10927
|
848
|
222
|
369 |
10908
|
848
|
570
|
370 |
10901
|
848
|
952
|
371 |
10906
|
848
|
435
|
372 |
10920
|
848
|
384
|
373 |
10913
|
848
|
559
|
374 |
10917
|
848
|
334
|
375 |
10878
|
848
|
1620
|
376 |
10881
|
848
|
150
|
377 |
10882
|
848
|
46
|
378 |
10884
|
848
|
626
|
379 |
10863
|
848
|
500
|
380 |
10864
|
848
|
154
|
381 |
10873
|
848
|
66
|
382 |
10875
|
848
|
287
|
383 |
10898
|
848
|
30
|
384 |
10892
|
848
|
2200
|
385 |
10861
|
848
|
992
|
386 |
10840
|
848
|
224
|
387 |
10843
|
848
|
212
|
388 |
10847
|
848
|
1020
|
389 |
10830
|
848
|
938
|
390 |
10816
|
848
|
7460
|
391 |
10807
|
848
|
18
|
392 |
10801
|
848
|
4008
|
393 |
10802
|
848
|
489
|
394 |
10803
|
848
|
819
|
395 |
10766
|
848
|
1258
|
396 |
10767
|
848
|
28
|
397 |
10774
|
848
|
840
|
398 |
10783
|
848
|
1450
|
399 |
10784
|
848
|
1540
|
400 |
10698
|
848
|
254
|
401 |
10707
|
848
|
892
|
402 |
10702
|
848
|
306
|
403 |
10725
|
848
|
244
|
404 |
10726
|
848
|
591
|
405 |
10716
|
848
|
99
|
406 |
10760
|
848
|
812
|
407 |
10749
|
848
|
964
|
408 |
10755
|
848
|
1988
|
409 |
10740
|
848
|
276
|
410 |
10741
|
848
|
285
|
411 |
10728
|
848
|
308
|
412 |
10685
|
848
|
722
|
413 |
10674
|
848
|
45
|
414 |
10688
|
848
|
2082
|
415 |
10692
|
848
|
880
|
416 |
10652
|
848
|
300
|
417 |
10658
|
848
|
628
|
418 |
10670
|
848
|
136
|
419 |
10645
|
848
|
1521
|
420 |
10640
|
848
|
561
|
421 |
10641
|
848
|
1934
|
422 |
10647
|
848
|
102
|
423 |
10624
|
848
|
922
|
424 |
10621
|
848
|
17
|
425 |
10622
|
848
|
406
|
426 |
10628
|
848
|
450
|
427 |
10629
|
848
|
2201
|
428 |
10634
|
848
|
2911
|
429 |
10636
|
848
|
616
|
430 |
10617
|
848
|
1650
|
431 |
10613
|
848
|
368
|
432 |
10608
|
848
|
1064
|
433 |
10606
|
848
|
434
|
434 |
10578
|
848
|
272
|
435 |
10590
|
848
|
612
|
436 |
10600
|
848
|
478
|
437 |
10574
|
848
|
290
|
438 |
10580
|
848
|
885
|
439 |
10584
|
848
|
650
|
440 |
10544
|
848
|
288
|
441 |
10554
|
848
|
540
|
442 |
10551
|
848
|
312
|
443 |
10564
|
848
|
102
|
444 |
10535
|
848
|
2035
|
445 |
10526
|
848
|
1240
|
446 |
10518
|
848
|
4042
|
447 |
10511
|
848
|
0
|
448 |
10522
|
848
|
730
|
449 |
10493
|
848
|
337
|
450 |
10494
|
848
|
900
|
451 |
10499
|
848
|
620
|
452 |
10509
|
848
|
138
|
453 |
10504
|
848
|
771
|
454 |
10485
|
848
|
358
|
455 |
10440
|
848
|
339
|
456 |
10447
|
848
|
873
|
457 |
10448
|
848
|
442
|
458 |
10454
|
848
|
340
|
459 |
10464
|
848
|
215
|
460 |
10466
|
848
|
152
|
461 |
10470
|
848
|
1389
|
462 |
10451
|
848
|
2211
|
463 |
10459
|
848
|
1320
|
464 |
10403
|
848
|
922
|
465 |
10430
|
848
|
2927
|
466 |
10431
|
848
|
1040
|
467 |
10417
|
848
|
10516
|
468 |
10418
|
848
|
820
|
469 |
10419
|
848
|
1040
|
470 |
10426
|
848
|
43
|
471 |
10427
|
848
|
665
|
472 |
10373
|
848
|
34
|
473 |
10382
|
848
|
1888
|
474 |
10389
|
848
|
745
|
475 |
10363
|
848
|
40
|
476 |
10347
|
848
|
714
|
477 |
10348
|
848
|
125
|
478 |
10360
|
848
|
791
|
479 |
10342
|
848
|
1016
|
480 |
10343
|
848
|
1468
|
481 |
10344
|
848
|
2742
|
482 |
10328
|
848
|
832
|
483 |
10329
|
848
|
4602
|
484 |
10326
|
848
|
412
|
485 |
10337
|
848
|
668
|
486 |
10338
|
848
|
855
|
487 |
10323
|
848
|
40
|
488 |
10299
|
848
|
153
|
489 |
10315
|
848
|
498
|
490 |
10294
|
848
|
277
|
491 |
10288
|
848
|
34
|
492 |
10302
|
848
|
1684
|
493 |
10250
|
848
|
1297
|
494 |
10284
|
848
|
374
|
495 |
10281
|
848
|
39
|
496 |
10282
|
848
|
94
|
497 |
10257
|
848
|
937
|
498 |
10252
|
848
|
3618
|
499 |
10267
|
848
|
3636
|
500 |
10259
|
848
|
69
|
501 |
10260
|
848
|
277
|
502 |
10261
|
848
|
440
|
503 |
10248
|
782
|
99
|
504 |
10254
|
782
|
283
|
505 |
10297
|
782
|
376
|
506 |
10269
|
782
|
584
|
507 |
10320
|
782
|
510
|
508 |
10333
|
782
|
582
|
509 |
10358
|
782
|
362
|
510 |
10359
|
782
|
2524
|
511 |
10372
|
782
|
8206
|
512 |
10378
|
782
|
102
|
513 |
10397
|
782
|
676
|
514 |
10463
|
782
|
693
|
515 |
10474
|
782
|
875
|
516 |
10477
|
782
|
354
|
517 |
10529
|
782
|
316
|
518 |
10549
|
782
|
2259
|
519 |
10575
|
782
|
1842
|
520 |
10569
|
782
|
987
|
521 |
10607
|
782
|
2304
|
522 |
10648
|
782
|
368
|
523 |
10649
|
782
|
405
|
524 |
10650
|
782
|
231
|
525 |
10654
|
782
|
74
|
526 |
10675
|
782
|
638
|
527 |
10730
|
782
|
10
|
528 |
10761
|
782
|
378
|
529 |
10721
|
782
|
950
|
530 |
10714
|
782
|
1507
|
531 |
10711
|
782
|
3760
|
532 |
10812
|
782
|
1196
|
533 |
10823
|
782
|
2259
|
534 |
10851
|
782
|
2333
|
535 |
10841
|
782
|
4089
|
536 |
10866
|
782
|
1409
|
537 |
10899
|
782
|
144
|
538 |
10874
|
782
|
310
|
539 |
10869
|
782
|
708
|
540 |
10870
|
782
|
92
|
541 |
10872
|
782
|
882
|
542 |
10922
|
782
|
742
|
543 |
10954
|
782
|
645
|
544 |
11043
|
782
|
210
|
545 |
11045
|
452
|
1237
|
546 |
11031
|
452
|
343
|
547 |
11025
|
452
|
204
|
548 |
11019
|
452
|
12
|
549 |
10999
|
452
|
706
|
550 |
10944
|
452
|
915
|
551 |
10973
|
452
|
247
|
552 |
10965
|
452
|
848
|
553 |
10956
|
452
|
348
|
554 |
10959
|
452
|
160
|
555 |
10929
|
452
|
787
|
556 |
10933
|
452
|
804
|
557 |
10907
|
452
|
112
|
558 |
10914
|
452
|
550
|
559 |
10885
|
452
|
455
|
560 |
10867
|
452
|
99
|
561 |
10833
|
452
|
772
|
562 |
10826
|
452
|
235
|
563 |
10822
|
452
|
201
|
564 |
10804
|
452
|
92
|
565 |
10794
|
452
|
371
|
566 |
10790
|
452
|
674
|
567 |
10791
|
452
|
1536
|
568 |
10708
|
452
|
11
|
569 |
10703
|
452
|
1495
|
570 |
10704
|
452
|
275
|
571 |
10701
|
452
|
2760
|
572 |
10764
|
452
|
2540
|
573 |
10757
|
452
|
1667
|
574 |
10754
|
452
|
54
|
575 |
10747
|
452
|
1154
|
576 |
10735
|
452
|
606
|
577 |
10744
|
452
|
900
|
578 |
10656
|
452
|
621
|
579 |
10643
|
452
|
976
|
580 |
10637
|
452
|
2474
|
581 |
10599
|
452
|
490
|
582 |
10611
|
452
|
300
|
583 |
10559
|
452
|
456
|
584 |
10555
|
452
|
519
|
585 |
10528
|
452
|
284
|
586 |
10539
|
452
|
243
|
587 |
10519
|
452
|
1364
|
588 |
10480
|
452
|
736
|
589 |
10489
|
452
|
3
|
590 |
10510
|
452
|
4176
|
591 |
10503
|
452
|
2030
|
592 |
10500
|
452
|
432
|
593 |
10425
|
452
|
422
|
594 |
10439
|
452
|
368
|
595 |
10446
|
452
|
64
|
596 |
10423
|
452
|
1020
|
597 |
10395
|
452
|
1772
|
598 |
10390
|
452
|
778
|
599 |
10370
|
452
|
856
|
600 |
10350
|
452
|
713
|
601 |
10355
|
452
|
500
|
602 |
10356
|
452
|
908
|
603 |
10291
|
452
|
432
|
604 |
10296
|
452
|
219
|
605 |
10298
|
452
|
1889
|
606 |
10317
|
452
|
280
|
607 |
10249
|
452
|
1595
|
608 |
10264
|
452
|
709
|
609 |
10271
|
452
|
48
|
610 |
10272
|
452
|
694
|
611 |
10274
|
452
|
400
|
612 |
10319
|
961
|
164
|
613 |
10322
|
961
|
120
|
614 |
10308
|
961
|
33
|
615 |
10303
|
961
|
816
|
616 |
10289
|
961
|
3
|
617 |
10349
|
961
|
144
|
618 |
10353
|
961
|
10746
|
619 |
10341
|
961
|
412
|
620 |
10335
|
961
|
2031
|
621 |
10336
|
961
|
324
|
622 |
10367
|
961
|
345
|
623 |
10424
|
961
|
10759
|
624 |
10428
|
961
|
200
|
625 |
10406
|
961
|
1473
|
626 |
10458
|
961
|
1698
|
627 |
10496
|
961
|
200
|
628 |
10497
|
961
|
994
|
629 |
10507
|
961
|
625
|
630 |
10490
|
961
|
2980
|
631 |
10483
|
961
|
173
|
632 |
10520
|
961
|
141
|
633 |
10523
|
961
|
1688
|
634 |
10512
|
961
|
506
|
635 |
10513
|
961
|
1635
|
636 |
10527
|
961
|
1654
|
637 |
10531
|
961
|
110
|
638 |
10532
|
961
|
30
|
639 |
10550
|
961
|
124
|
640 |
10573
|
961
|
951
|
641 |
10585
|
961
|
150
|
642 |
10609
|
961
|
316
|
643 |
10601
|
961
|
1773
|
644 |
10597
|
961
|
451
|
645 |
10593
|
961
|
1085
|
646 |
10633
|
961
|
3707
|
647 |
10642
|
961
|
872
|
648 |
10639
|
961
|
504
|
649 |
10678
|
961
|
2784
|
650 |
10666
|
961
|
4514
|
651 |
10667
|
961
|
1888
|
652 |
10659
|
961
|
748
|
653 |
10661
|
961
|
587
|
654 |
10731
|
961
|
1958
|
655 |
10695
|
961
|
364
|
656 |
10797
|
961
|
420
|
657 |
10777
|
961
|
280
|
658 |
10775
|
961
|
144
|
659 |
10809
|
961
|
140
|
660 |
10818
|
961
|
584
|
661 |
10836
|
961
|
494
|
662 |
10868
|
961
|
824
|
663 |
10848
|
961
|
853
|
664 |
10880
|
961
|
134
|
665 |
10876
|
961
|
616
|
666 |
10896
|
961
|
758
|
667 |
10890
|
961
|
585
|
668 |
10891
|
961
|
390
|
669 |
10937
|
961
|
104
|
670 |
10923
|
961
|
16
|
671 |
10958
|
961
|
447
|
672 |
10941
|
961
|
1348
|
673 |
10993
|
961
|
6502
|
674 |
11008
|
961
|
2486
|
675 |
11030
|
961
|
2750
|
676 |
11037
|
961
|
60
|
677 |
11033
|
961
|
3094
|
678 |
11047
|
961
|
948
|
679 |
11048
|
961
|
546
|
680 |
11066
|
961
|
163
|
681 |
11074
|
961
|
238
|
682 |
11055
|
961
|
1325
|
683 |
11051
|
961
|
50
|
684 |
11054
|
443
|
262
|
685 |
11056
|
443
|
348
|
686 |
11065
|
443
|
228
|
687 |
11075
|
443
|
498
|
688 |
11068
|
443
|
1636
|
689 |
11050
|
443
|
900
|
690 |
11046
|
443
|
604
|
691 |
11034
|
443
|
220
|
692 |
11036
|
443
|
1624
|
693 |
10997
|
443
|
1596
|
694 |
10998
|
443
|
207
|
695 |
11007
|
443
|
172
|
696 |
10986
|
443
|
1726
|
697 |
10987
|
443
|
1184
|
698 |
10979
|
443
|
864
|
699 |
10977
|
443
|
594
|
700 |
10940
|
443
|
136
|
701 |
10955
|
443
|
96
|
702 |
10957
|
443
|
212
|
703 |
10961
|
443
|
1042
|
704 |
10962
|
443
|
1088
|
705 |
10932
|
443
|
448
|
706 |
10887
|
443
|
70
|
707 |
10883
|
443
|
40
|
708 |
10852
|
443
|
2149
|
709 |
10844
|
443
|
735
|
710 |
10845
|
443
|
1220
|
711 |
10862
|
443
|
565
|
712 |
10857
|
443
|
457
|
713 |
10824
|
443
|
255
|
714 |
10811
|
443
|
569
|
715 |
10770
|
443
|
315
|
716 |
10795
|
443
|
260
|
717 |
10786
|
443
|
1126
|
718 |
10696
|
443
|
980
|
719 |
10694
|
443
|
3389
|
720 |
10706
|
443
|
1212
|
721 |
10719
|
443
|
930
|
722 |
10720
|
443
|
458
|
723 |
10722
|
443
|
426
|
724 |
10724
|
443
|
353
|
725 |
10729
|
443
|
40
|
726 |
10756
|
443
|
1737
|
727 |
10660
|
443
|
1701
|
728 |
10679
|
443
|
660
|
729 |
10651
|
443
|
456
|
730 |
10635
|
443
|
687
|
731 |
10631
|
443
|
64
|
732 |
10632
|
443
|
518
|
733 |
10623
|
443
|
909
|
734 |
10627
|
443
|
210
|
735 |
10589
|
443
|
72
|
736 |
10596
|
443
|
1134
|
737 |
10602
|
443
|
65
|
738 |
10603
|
443
|
516
|
739 |
10610
|
443
|
399
|
740 |
10614
|
443
|
300
|
741 |
10571
|
443
|
373
|
742 |
10545
|
443
|
210
|
743 |
10560
|
443
|
215
|
744 |
10565
|
443
|
559
|
745 |
10543
|
443
|
1538
|
746 |
10533
|
443
|
1644
|
747 |
10534
|
443
|
502
|
748 |
10521
|
443
|
28
|
749 |
10491
|
443
|
182
|
750 |
10488
|
443
|
1496
|
751 |
10481
|
443
|
1464
|
752 |
10476
|
443
|
182
|
753 |
10498
|
443
|
440
|
754 |
10452
|
443
|
1116
|
755 |
10460
|
443
|
202
|
756 |
10472
|
443
|
948
|
757 |
10467
|
443
|
244
|
758 |
10443
|
443
|
470
|
759 |
10455
|
443
|
1997
|
760 |
10456
|
443
|
16
|
761 |
10450
|
443
|
464
|
762 |
10399
|
443
|
704
|
763 |
10402
|
443
|
2375
|
764 |
10408
|
443
|
1443
|
765 |
10412
|
443
|
380
|
766 |
10416
|
443
|
200
|
767 |
10421
|
443
|
784
|
768 |
10437
|
443
|
390
|
769 |
10435
|
443
|
322
|
770 |
10369
|
443
|
1440
|
771 |
10366
|
443
|
103
|
772 |
10380
|
443
|
696
|
773 |
10383
|
443
|
767
|
774 |
10334
|
443
|
84
|
775 |
10354
|
443
|
292
|
776 |
10290
|
443
|
1037
|
777 |
10305
|
443
|
3309
|
778 |
10301
|
443
|
718
|
779 |
10310
|
443
|
79
|
780 |
10318
|
443
|
244
|
781 |
10276
|
443
|
325
|
782 |
10278
|
443
|
928
|
783 |
10279
|
443
|
465
|
784 |
10286
|
443
|
864
|
785 |
10287
|
443
|
634
|
786 |
10262
|
443
|
408
|
787 |
10268
|
443
|
942
|
788 |
10263
|
573
|
1780
|
789 |
10255
|
573
|
1177
|
790 |
10324
|
573
|
4046
|
791 |
10331
|
573
|
90
|
792 |
10386
|
573
|
82
|
793 |
10411
|
573
|
964
|
794 |
10501
|
573
|
140
|
795 |
10506
|
573
|
46
|
796 |
10475
|
573
|
90
|
797 |
10538
|
573
|
74
|
798 |
10566
|
573
|
1541
|
799 |
10557
|
573
|
894
|
800 |
10586
|
573
|
28
|
801 |
10577
|
573
|
254
|
802 |
10646
|
573
|
115
|
803 |
10687
|
573
|
5720
|
804 |
10672
|
573
|
3696
|
805 |
10750
|
573
|
1212
|
806 |
10736
|
573
|
1000
|
807 |
10745
|
573
|
3462
|
808 |
10705
|
573
|
388
|
809 |
10799
|
573
|
1347
|
810 |
10771
|
573
|
352
|
811 |
10782
|
573
|
13
|
812 |
10837
|
573
|
268
|
813 |
10828
|
573
|
901
|
814 |
10829
|
573
|
360
|
815 |
10853
|
573
|
630
|
816 |
10849
|
573
|
964
|
817 |
10871
|
573
|
1630
|
818 |
10889
|
573
|
10760
|
819 |
10893
|
573
|
3536
|
820 |
10905
|
573
|
360
|
821 |
10963
|
573
|
68
|
822 |
10970
|
573
|
280
|
823 |
10953
|
573
|
3416
|
824 |
10951
|
573
|
385
|
825 |
10942
|
573
|
560
|
826 |
10978
|
573
|
630
|
827 |
11022
|
573
|
1283
|
828 |
11016
|
573
|
499
|
829 |
11017
|
573
|
5786
|
830 |
11058
|
573
|
672
|
2. Usage of CHECKSUM for full contact of customer
SQL Server Query 2
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(CustomerID, (ContactName + ' (' + ContactTitle + ')'))) AS FullContactChecksum
FROM Customers;
Create SQL query with SqlQueryBuilder 2
var (sql2, parameters2) = new SqlQueryBuilder()
.Select()
.Column(new CHECKSUM_AGG(
new BINARY_CHECKSUM(new Column("CustomerID"), new CONCAT(new Column("ContactName"), " ("),
new Column("ContactTitle"), ")")), "FullContactChecksum")
.From("Customers")
.Build();
Query build by SqlQueryBuilder 2
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(CustomerID, CONCAT(ContactName, @pMAIN_2507200155149915690), ContactTitle, @pMAIN_2507200155149915691)) AS FullContactChecksum
FROM Customers;
Parameters (If used)
Name |
Value |
@pMAIN_2507200155149915690 |
( |
@pMAIN_2507200155149915691 |
) |
Query Results 2:
|
FullContactChecksum |
1 |
2043615787
|
3. Usage of CHECKSUM for customer postal code
SQL Server Query 3
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(CustomerID, CAST(PostalCode AS VARCHAR(10)))) AS PostalCodeVarcharChecksum
FROM Customers;
Create SQL query with SqlQueryBuilder 3
var (sql3, parameters3) = new SqlQueryBuilder()
.Select()
.Column(new CHECKSUM_AGG(new BINARY_CHECKSUM(new Column("CustomerID"), new CAST(new Column("PostalCode"), SqlDataType.VARCHAR, "10")))
, "PostalCodeVarcharChecksum")
.From("Customers")
.Build();
Query build by SqlQueryBuilder 3
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(CustomerID, CAST (PostalCode AS VARCHAR (10)))) AS PostalCodeVarcharChecksum
FROM Customers;
Parameters (If used)
Query Results 3:
|
PostalCodeVarcharChecksum |
1 |
966922135
|
4. Usage of CHECKSUM to show change in customer data
SQL Server Query 4
WITH PreviousCustomers AS (
SELECT CustomerID, CompanyName, ContactName -- ... other columns
FROM Customers -- A hypothetical table storing previous customer data
WHERE CustomerID IN ('ALFKI','ANATR','ANTON','AROUT','BERGS')
)
SELECT
c.CustomerID,
CASE
WHEN BINARY_CHECKSUM(c.CompanyName, c.ContactName) <>
BINARY_CHECKSUM(pc.CompanyName, pc.ContactName) THEN 'Changed'
ELSE 'No Change'
END AS ChangeStatus
FROM Customers c
LEFT JOIN PreviousCustomers pc ON c.CustomerID = pc.CustomerID;
Create SQL query with SqlQueryBuilder 4
var (sql4, parameters4) = new SqlQueryBuilder()
.WithCTETable(new Table("PreviousCustomers"), new SqlQueryBuilder()
.Select()
.Columns("CustomerID","CompanyName","ContactName")
.From("Customers")
.Where(new Where(new IN(new Column("CustomerID"), "ALFKI", "ANATR", "ANTON", "AROUT", "BERGS")))
)
.Select()
.Column("c.CustomerID", "CustomerID")
.Column(new CASE().When(new BINARY_CHECKSUM(new Column("c.CompanyName"), new Column("c.ContactName"))
.NotEqualeTo(new BINARY_CHECKSUM(new Column("pc.CompanyName"), new Column("pc.ContactName"))))
.Then("Changed")
.Else("No Change")
, "ChangeStatus")
.From("Customers","c")
.Join(new List<IJoin>()
{
new LEFTJOIN().TableName("PreviousCustomers","pc")
.On(new Column("c.CustomerID").Equale(new Column("pc.CustomerID")))
})
.Build();
Query build by SqlQueryBuilder 4
WITH PreviousCustomers
AS (SELECT CustomerID,
CompanyName,
ContactName
FROM Customers
WHERE CustomerID IN (@pMAIN_2507200155149967330, @pMAIN_2507200155149967331, @pMAIN_2507200155149967332, @pMAIN_2507200155149967333, @pMAIN_2507200155149967334))
SELECT c.CustomerID AS CustomerID,
CASE WHEN BINARY_CHECKSUM(c.CompanyName, c.ContactName) <> BINARY_CHECKSUM(pc.CompanyName, pc.ContactName) THEN @pMAIN_2507200155149967335 ELSE @pMAIN_2507200155149967336 END AS ChangeStatus
FROM Customers AS c
LEFT OUTER JOIN
PreviousCustomers AS pc
ON c.CustomerID = pc.CustomerID;
Parameters (If used)
Name |
Value |
@pMAIN_2507200155149967330 |
ALFKI |
@pMAIN_2507200155149967331 |
ANATR |
@pMAIN_2507200155149967332 |
ANTON |
@pMAIN_2507200155149967333 |
AROUT |
@pMAIN_2507200155149967334 |
BERGS |
@pMAIN_2507200155149967335 |
Changed |
@pMAIN_2507200155149967336 |
No Change |
Query Results 4:
|
CustomerID |
ChangeStatus |
1 |
ALFKI
|
No Change
|
2 |
ANATR
|
No Change
|
3 |
ANTON
|
No Change
|
4 |
AROUT
|
No Change
|
5 |
BERGS
|
No Change
|
6 |
BLAUS
|
Changed
|
7 |
BLONP
|
Changed
|
8 |
BOLID
|
Changed
|
9 |
BONAP
|
Changed
|
10 |
BOTTM
|
Changed
|
11 |
BSBEV
|
Changed
|
12 |
CACTU
|
Changed
|
13 |
CENTC
|
Changed
|
14 |
CHOPS
|
Changed
|
15 |
COMMI
|
Changed
|
16 |
CONSH
|
Changed
|
17 |
DRACD
|
Changed
|
18 |
DUMON
|
Changed
|
19 |
EASTC
|
Changed
|
20 |
ERNSH
|
Changed
|
21 |
FAMIA
|
Changed
|
22 |
FISSA
|
Changed
|
23 |
FOLIG
|
Changed
|
24 |
FOLKO
|
Changed
|
25 |
FRANK
|
Changed
|
26 |
FRANR
|
Changed
|
27 |
FRANS
|
Changed
|
28 |
FURIB
|
Changed
|
29 |
GALED
|
Changed
|
30 |
GODOS
|
Changed
|
31 |
GOURL
|
Changed
|
32 |
GREAL
|
Changed
|
33 |
GROSR
|
Changed
|
34 |
HANAR
|
Changed
|
35 |
HILAA
|
Changed
|
36 |
HUNGC
|
Changed
|
37 |
HUNGO
|
Changed
|
38 |
ISLAT
|
Changed
|
39 |
KOENE
|
Changed
|
40 |
LACOR
|
Changed
|
41 |
LAMAI
|
Changed
|
42 |
LAUGB
|
Changed
|
43 |
LAZYK
|
Changed
|
44 |
LEHMS
|
Changed
|
45 |
LETSS
|
Changed
|
46 |
LILAS
|
Changed
|
47 |
LINOD
|
Changed
|
48 |
LONEP
|
Changed
|
49 |
MAGAA
|
Changed
|
50 |
MAISD
|
Changed
|
51 |
MEREP
|
Changed
|
52 |
MORGK
|
Changed
|
53 |
NORTS
|
Changed
|
54 |
OCEAN
|
Changed
|
55 |
OLDWO
|
Changed
|
56 |
OTTIK
|
Changed
|
57 |
PARIS
|
Changed
|
58 |
PERIC
|
Changed
|
59 |
PICCO
|
Changed
|
60 |
PRINI
|
Changed
|
61 |
QUEDE
|
Changed
|
62 |
QUEEN
|
Changed
|
63 |
QUICK
|
Changed
|
64 |
RANCH
|
Changed
|
65 |
RATTC
|
Changed
|
66 |
REGGC
|
Changed
|
67 |
RICAR
|
Changed
|
68 |
RICSU
|
Changed
|
69 |
ROMEY
|
Changed
|
70 |
SANTG
|
Changed
|
71 |
SAVEA
|
Changed
|
72 |
SEVES
|
Changed
|
73 |
SIMOB
|
Changed
|
74 |
SPECD
|
Changed
|
75 |
SPLIR
|
Changed
|
76 |
SUPRD
|
Changed
|
77 |
THEBI
|
Changed
|
78 |
THECR
|
Changed
|
79 |
TOMSP
|
Changed
|
80 |
TORTU
|
Changed
|
81 |
TRADH
|
Changed
|
82 |
TRAIH
|
Changed
|
83 |
VAFFE
|
Changed
|
84 |
VICTE
|
Changed
|
85 |
VINET
|
Changed
|
86 |
WANDK
|
Changed
|
87 |
WARTH
|
Changed
|
88 |
WELLI
|
Changed
|
89 |
WHITC
|
Changed
|
90 |
WILMK
|
Changed
|
91 |
WOLZA
|
Changed
|