I have a table with a field called Result that contains values that can be anywhere between 1 and 100.
The table also contains a Date/Time field and is sorted from oldest to newest.
I want to be able to return adjacent records that have a Result of less than 3.
So, I need to first find a record with a Result that is less than 3 then check if the next records also have a Result of less than 3. If they do these records should be returned.
There may be no such adjacent records or there may be multiple records that meet this criteria.
Is this possible?
Edit to show raw data:
EVENT_ID | MENU_HINT | EVENT_NAME | EVENT_DT | SELECTION_ID | SELECTION_NAME | WIN_LOSE | RESULT | PPWAP | MORNINGWAP | PPMAX | PPMIN | IPMAX | IPMIN | MORNINGTRADEDVOL | PPTRADEDVOL | IPTRADEDVOL |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
177429103 | GB / Warw 31st Dec | 2m3f Nov Hcap Hrd | 31/12/2020 12:16 | 24258495 | Durouyn | 0 | 3.35 | 3.788495864 | 5.38488519 | 8.2 | 3.35 | 1000 | 3 | 11733.86 | 122639.8 | 34646.44 |
177429358 | GB / Ling 31st Dec | 5f Hcap | 31/12/2020 12:25 | 18749440 | Recon Mission | 1 | 2.690970585 | 2.971591572 | 3.333867707 | 3.7 | 2.62 | 2.62 | 1.01 | 10373.34 | 148069.5 | 80777.62 |
177429108 | GB / Warw 31st Dec | 2m5f Nov Hrd | 31/12/2020 12:50 | 24173821 | Hunny Moon | 0 | 2.447464433 | 2.11324847 | 2.163378525 | 2.44 | 2.04 | 1000 | 1.19 | 11813.96 | 255912.18 | 125384.84 |
177429363 | GB / Ling 31st Dec | 1m4f Hcap | 31/12/2020 13:00 | 15836857 | Furzig | 1 | 3.854984987 | 3.902990521 | 3.600931943 | 4.3 | 3.3 | 4.8 | 1.01 | 8973.44 | 143838.1 | 77024.42 |
177429113 | GB / Warw 31st Dec | 2m Hcap Chs | 31/12/2020 13:20 | 21621736 | Clondaw Storm | 0 | 3.6 | 3.743201097 | 4.742622035 | 5.3 | 3.35 | 1000 | 3.5 | 2816.16 | 189308.52 | 24052.28 |
177429368 | GB / Ling 31st Dec | 1m Nursery | 31/12/2020 13:30 | 16246360 | Crane | 1 | 4.57347948 | 5.497304184 | 8.064209052 | 13.5 | 4.3 | 9 | 1.01 | 2381.6 | 80916.5 | 56471.38 |
177429118 | GB / Warw 31st Dec | 3m Hcap Chs | 31/12/2020 13:50 | 12139570 | Western Climate | 1 | 5.156135933 | 5.604728454 | 8.718328245 | 11 | 4.7 | 36 | 1.01 | 1533.68 | 66886.62 | 113571.44 |
177429373 | GB / Ling 31st Dec | 1m Hcap | 31/12/2020 14:00 | 25106015 | Fox Duty Free | 1 | 1.822597055 | 1.653244765 | 1.834082867 | 1.86 | 1.53 | 2.18 | 1.01 | 9200.44 | 294331.6 | 133141.52 |
177455809 | GB / Newc 31st Dec | 1m2f Mdn Stks | 31/12/2020 14:15 | 36868924 | Sea La Rosa | 0 | 1.53 | 1.543693353 | 1.514527435 | 1.71 | 1.44 | 1000 | 1.17 | 9156.44 | 414060.88 | 87693.56 |
177429123 | GB / Warw 31st Dec | 3m2f Hcap Hrd | 31/12/2020 14:25 | 16570526 | Mr Washington | 1 | 2.887501832 | 3.033127147 | 3.416500781 | 3.7 | 2.8 | 12.5 | 1.01 | 3951.08 | 267753.32 | 222510.44 |
177429378 | GB / Ling 31st Dec | 7f Hcap | 31/12/2020 14:35 | 26817851 | Queens Course | 0 | 3.2 | 3.090787978 | 2.725768785 | 3.35 | 2.56 | 1000 | 2.74 | 13746.16 | 191223.12 | 33258.54 |
177455814 | GB / Newc 31st Dec | 7f Nursery | 31/12/2020 14:50 | 28583483 | Patsy Fagan | 0 | 3.6 | 3.871536732 | 5.026440395 | 5.5 | 3.5 | 1000 | 3.05 | 821.96 | 129773.56 | 12941.11 |
177429128 | GB / Warw 31st Dec | 2m4f Hcap Chs | 31/12/2020 14:55 | 27358555 | Larcadio | 0 | 5.1 | 5.516270157 | 7.542009007 | 12.78 | 4.7 | 1000 | 5 | 2973.82 | 125064.34 | 14205.61 |
177429383 | GB / Ling 31st Dec | 7f Nov Stks | 31/12/2020 15:05 | 35988539 | Vunipola | 0 | 4.163666731 | 4.865682954 | 6.290553968 | 6.63 | 4.09 | 1000 | 3.6 | 1566.86 | 90363.92 | 7276.22 |
177455819 | GB / Newc 31st Dec | 7f Hcap | 31/12/2020 15:20 | 17896417 | The Great Heir | 0 | 4.633138814 | 4.98396497 | 5.033891895 | 6.4 | 4.4 | 1000 | 2.02 | 2751.64 | 89814.54 | 20710.14 |
177429133 | GB / Warw 31st Dec | 2m NHF | 31/12/2020 15:25 | 36643074 | Shearer | 1 | 1.734505856 | 1.642204062 | 1.648608997 | 1.79 | 1.52 | 2.4 | 1.01 | 6611.44 | 389837.24 | 220416.46 |
177429388 | GB / Ling 31st Dec | 6f Hcap | 31/12/2020 15:35 | 23983758 | Come On Girl | 1 | 4.036457882 | 4.226797676 | 5.141209402 | 5.3 | 3.95 | 6.2 | 1.01 | 2758.88 | 158780.52 | 68546.8 |
177455824 | GB / Newc 31st Dec | 5f Hcap | 31/12/2020 15:50 | 28554376 | The Mackem Torpedo | 0 | 4.590142598 | 4.354303892 | 4.018987238 | 4.7 | 3.95 | 1000 | 4.5 | 1625.74 | 135903 | 6791.62 |
177455829 | GB / Newc 31st Dec | 1m Hcap | 31/12/2020 16:20 | 12722816 | Vive La Difference | 0 | 4.662202966 | 4.069578956 | 3.447760364 | 4.6 | 3.4 | 1000 | 2.5 | 2542.4 | 142089.24 | 22386.43 |
177455834 | GB / Newc 31st Dec | 6f Hcap | 31/12/2020 16:50 | 24560233 | Tyche | 0 | 4.468887453 | 4.409369153 | 3.73378774 | 4.9 | 3.6 | 1000 | 3.75 | 2678.94 | 199866.86 | 8157.5 |
177455839 | GB / Newc 31st Dec | 6f Hcap | 31/12/2020 17:20 | 21809957 | Firsteen | 0 | 2.76 | 3.297405269 | 4.273854189 | 4.8 | 2.62 | 1000 | 1.98 | 1630.52 | 206865.74 | 19490.28 |
177455844 | GB / Newc 31st Dec | 5f Nursery | 31/12/2020 17:50 | 10108658 | It Just Takes Time | 1 | 2.835988231 | 2.930861482 | 3.51783407 | 3.7 | 2.68 | 8 | 1.01 | 3203.46 | 303616.28 | 71088.54 |
177452819 | GB / Sthl 1st Jan | 1m Hcap | 01/01/2021 12:05 | 24354064 | Jump The Gun | 0 | 1.943695456 | 2.106938051 | 2.212582243 | 2.75 | 1.93 | 1000 | 1.73 | 20918.4 | 247224.48 | 34151.63 |
177452824 | GB / Sthl 1st Jan | 1m Hcap | 01/01/2021 12:40 | 17784369 | Geography Teacher | 0 | 3.386219187 | 4.094098153 | 4.019062448 | 4.9 | 2.96 | 1000 | 2.98 | 3835.16 | 135242.08 | 18892.67 |
177450972 | GB / Muss 1st Jan | 1m7f Juv Hrd | 01/01/2021 12:45 | 26781759 | Fiveandtwenty | 1 | 1.303352215 | 1.319167666 | 1.345312394 | 1.46 | 1.28 | 1.29 | 1.01 | 32274.92 | 444260.44 | 153330.38 |
177452829 | GB / Sthl 1st Jan | 7f Hcap | 01/01/2021 13:15 | 24434010 | Stone Soldier | 0 | 2.549774392 | 2.794154799 | 2.617939611 | 3.1 | 2.24 | 1000 | 2.6 | 5205 | 321055.3 | 26159.48 |
177450977 | GB / Muss 1st Jan | 2m4f Hcap Hrd | 01/01/2021 13:20 | 17336818 | Sebastopol | 0 | 3.929666003 | 4.081355067 | 4.949413661 | 6.4 | 3.8 | 1000 | 2.54 | 21569.96 | 198160.34 | 52413.5 |
177452834 | GB / Sthl 1st Jan | 5f Hcap | 01/01/2021 13:50 | 18267122 | Thegreatestshowman | 1 | 2.063934555 | 2.377164912 | 3.396825984 | 3.6 | 1.95 | 2.38 | 1.01 | 3969.34 | 354445.76 | 98256.96 |
177450982 | GB / Muss 1st Jan | 1m7f Hcap Hrd | 01/01/2021 13:55 | 21566171 | Rosie And Millie | 0 | 3.724492471 | 4.147640855 | 4.350885597 | 6.17 | 3.7 | 1000 | 1.9 | 17416.7 | 177567.04 | 50688.77 |
177452839 | GB / Sthl 1st Jan | 5f Hcap | 01/01/2021 14:25 | 11905513 | Mulzim | 0 | 2.970033644 | 2.81744235 | 3.279075198 | 3.69 | 2.66 | 1000 | 1.15 | 4101.28 | 286360.76 | 44772.63 |
177450987 | GB / Muss 1st Jan | 3m Hcap Chs | 01/01/2021 14:30 | 11835257 | Eagle Ridge | 1 | 3.3 | 3.439516592 | 3.816612889 | 4.11 | 3.15 | 5.1 | 1.22 | 3783.72 | 155260.58 | 198310.06 |
177452844 | GB / Sthl 1st Jan | 5f Nov Stks | 01/01/2021 15:00 | 6734265 | Silent Queen | 1 | 2.112527135 | 2.034570227 | 2.363084285 | 2.5 | 1.91 | 2.08 | 1.01 | 6776.64 | 557441.78 | 77038.62 |
177450992 | GB / Muss 1st Jan | 2m4f Hcap Chs | 01/01/2021 15:05 | 18443373 | Red Risk | 0 | 6.4 | 7.754651066 | 8.574540985 | 10.5 | 6.2 | 1000 | 2.6 | 4665.12 | 91115.26 | 22514.2 |
177452849 | GB / Sthl 1st Jan | 1m3f Hcap | 01/01/2021 15:30 | 13164979 | Mr Carbonator | 1 | 4.862029739 | 4.880893131 | 5.386305365 | 7.2 | 4.3 | 13 | 1.01 | 2191.3 | 118629.32 | 73162.24 |
177450997 | GB / Muss 1st Jan | 3m Hcap Hrd | 01/01/2021 15:35 | 8427444 | Arnica | 0 | 4.949186067 | 4.859721673 | 6.046290481 | 8.15 | 4.4 | 1000 | 4.8 | 4594.06 | 82383.08 | 18082.52 |
177482329 | GB / Ling 2nd Jan | 1m2f Hcap | 02/01/2021 11:30 | 16934 | One To Go | 0 | 4.647552172 | 4.247650843 | 3.744785965 | 5.4 | 2.3 | 1000 | 4.2 | 20388.5 | 93931.36 | 16765.68 |
177482337 | GB / Ling 2nd Jan | 1m2f Hcap | 02/01/2021 12:00 | 35537114 | Coupe De Champagne | 1 | 2.759257517 | 2.691724907 | 2.688327131 | 3.1 | 2.66 | 4.8 | 1.01 | 5364.58 | 172705.28 | 87986.16 |
177482285 | GB / Sand 2nd Jan | 2m Juv Hrd | 02/01/2021 12:05 | 28648727 | Hudson De Grugy | 1 | 1.652021681 | 1.580651241 | 1.610294187 | 1.7 | 1.47 | 5.1 | 1.01 | 38845.94 | 297948.06 | 198330.6 |
177482345 | GB / Ling 2nd Jan | 1m Mdn Stks | 02/01/2021 12:35 | 37389223 | Abrag | 0 | 3.014364274 | 2.92708331 | 2.954901994 | 3.85 | 2.52 | 1000 | 2.66 | 10421.1 | 149521.56 | 16386.74 |
177482290 | GB / Sand 2nd Jan | 2m4f Listed Mares Hrd | 02/01/2021 12:40 | 12765436 | Stormy Ireland | 0 | 2.450297083 | 2.21840097 | 2.105412255 | 2.4 | 1.99 | 1000 | 1.13 | 31835.58 | 237664.44 | 151548.74 |
177482367 | GB / Ling 2nd Jan | 1m Hcap | 02/01/2021 13:10 | 22475046 | Kodiac Harbour | 0 | 4.161454727 | 4.104053582 | 4.010289186 | 4.5 | 3.8 | 1000 | 4.3 | 6452.88 | 124187.18 | 14029.48 |
177482295 | GB / Sand 2nd Jan | 2m4f Hcap Chs | 02/01/2021 13:15 | 18416742 | Destinee Royale | 0 | 2.581778427 | 2.534929323 | 2.62282913 | 3.25 | 2.4 | 1000 | 1.61 | 14468.6 | 285577.14 | 71690.41 |
177482388 | GB / Ling 2nd Jan | 7f Hcap | 02/01/2021 13:45 | 21039777 | Merweb | 0 | 4.214427037 | 3.716077346 | 4.157082886 | 4.4 | 3.7 | 900 | 3.5 | 2075.5 | 100099.42 | 23796.07 |
177482300 | GB / Sand 2nd Jan | 1m7f Hcap Chs | 02/01/2021 13:50 | 12458428 | Ibleo | 1 | 2.771342189 | 2.865297244 | 3.093340465 | 3.5 | 2.72 | 12 | 1.01 | 57468.66 | 468915.94 | 184558.08 |
177482395 | GB / Ling 2nd Jan | 6f Hcap | 02/01/2021 14:20 | 28659808 | Rohaan | 0 | 2.44 | 2.44365781 | 2.795702203 | 3 | 2.36 | 1000 | 2.48 | 6884.58 | 214335.08 | 45763.14 |
177482305 | GB / Sand 2nd Jan | 2m Grd1 Nov Hrd | 02/01/2021 14:25 | 11144887 | Metier | 1 | 2.98 | 2.623330988 | 2.336856915 | 3.05 | 2.16 | 3.3 | 1.01 | 68284.7 | 569650.62 | 223772.66 |
177482403 | GB / Ling 2nd Jan | 6f Nov Stks | 02/01/2021 14:55 | 35856072 | Hidden Breeze | 1 | 1.899786009 | 1.700147533 | 1.695047545 | 1.93 | 1.56 | 3.15 | 1.01 | 5141.26 | 397544.9 | 115253.84 |
177482310 | GB / Sand 2nd Jan | 3m Hcap Chs | 02/01/2021 15:00 | 10464730 | Potters Legend | 0 | 8.945083598 | 7.487055028 | 8.587091835 | 11.38 | 6.4 | 1000 | 6 | 10048.92 | 148817.98 | 26323.38 |
177482420 | GB / Ling 2nd Jan | 5f Hcap | 02/01/2021 15:30 | 11137751 | Super Julius | 0 | 2.98107922 | 3.109512581 | 3.884551246 | 6 | 2.96 | 1000 | 2.92 | 3995.54 | 196505.52 | 17391.92 |
177482315 | GB / Sand 2nd Jan | 2m Hcap Hrd | 02/01/2021 15:35 | 17094738 | Monsieur Lecoq | 0 | 3.843156747 | 3.294978739 | 4.176691124 | 5.5 | 3.3 | 1000 | 3.7 | 17716.24 | 234519.22 | 47568.92 |
And expected result:
EVENT_ID | MENU_HINT | EVENT_NAME | EVENT_DT | SELECTION_ID | SELECTION_NAME | WIN_LOSE | RESULT | PPWAP | MORNINGWAP | PPMAX | PPMIN | IPMAX | IPMIN | MORNINGTRADEDVOL | PPTRADEDVOL | IPTRADEDVOL |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
177429358 | GB / Ling 31st Dec | 5f Hcap | 44196.51736 | 18749440 | Recon Mission | 1 | 2.690970585 | 2.971591572 | 3.333867707 | 3.7 | 2.62 | 2.62 | 1.01 | 10373.34 | 148069.5 | 80777.62 |
177429108 | GB / Warw 31st Dec | 2m5f Nov Hrd | 44196.53472 | 24173821 | Hunny Moon | 0 | 2.447464433 | 2.11324847 | 2.163378525 | 2.44 | 2.04 | 1000 | 1.19 | 11813.96 | 255912.18 | 125384.84 |
177429373 | GB / Ling 31st Dec | 1m Hcap | 44196.58333 | 25106015 | Fox Duty Free | 1 | 1.822597055 | 1.653244765 | 1.834082867 | 1.86 | 1.53 | 2.18 | 1.01 | 9200.44 | 294331.6 | 133141.52 |
177455809 | GB / Newc 31st Dec | 1m2f Mdn Stks | 44196.59375 | 36868924 | Sea La Rosa | 0 | 1.53 | 1.543693353 | 1.514527435 | 1.71 | 1.44 | 1000 | 1.17 | 9156.44 | 414060.88 | 87693.56 |
177429123 | GB / Warw 31st Dec | 3m2f Hcap Hrd | 44196.60069 | 16570526 | Mr Washington | 1 | 2.887501832 | 3.033127147 | 3.416500781 | 3.7 | 2.8 | 12.5 | 1.01 | 3951.08 | 267753.32 | 222510.44 |
177455839 | GB / Newc 31st Dec | 6f Hcap | 44196.72222 | 21809957 | Firsteen | 0 | 2.76 | 3.297405269 | 4.273854189 | 4.8 | 2.62 | 1000 | 1.98 | 1630.52 | 206865.74 | 19490.28 |
177455844 | GB / Newc 31st Dec | 5f Nursery | 44196.74306 | 10108658 | It Just Takes Time | 1 | 2.835988231 | 2.930861482 | 3.51783407 | 3.7 | 2.68 | 8 | 1.01 | 3203.46 | 303616.28 | 71088.54 |
177452819 | GB / Sthl 1st Jan | 1m Hcap | 44197.50347 | 24354064 | Jump The Gun | 0 | 1.943695456 | 2.106938051 | 2.212582243 | 2.75 | 1.93 | 1000 | 1.73 | 20918.4 | 247224.48 | 34151.63 |
177450972 | GB / Muss 1st Jan | 1m7f Juv Hrd | 44197.53125 | 26781759 | Fiveandtwenty | 1 | 1.303352215 | 1.319167666 | 1.345312394 | 1.46 | 1.28 | 1.29 | 1.01 | 32274.92 | 444260.44 | 153330.38 |
177452829 | GB / Sthl 1st Jan | 7f Hcap | 44197.55208 | 24434010 | Stone Soldier | 0 | 2.549774392 | 2.794154799 | 2.617939611 | 3.1 | 2.24 | 1000 | 2.6 | 5205 | 321055.3 | 26159.48 |
177482337 | GB / Ling 2nd Jan | 1m2f Hcap | 44198.5 | 35537114 | Coupe De Champagne | 1 | 2.759257517 | 2.691724907 | 2.688327131 | 3.1 | 2.66 | 4.8 | 1.01 | 5364.58 | 172705.28 | 87986.16 |
177482285 | GB / Sand 2nd Jan | 2m Juv Hrd | 44198.50347 | 28648727 | Hudson De Grugy | 1 | 1.652021681 | 1.580651241 | 1.610294187 | 1.7 | 1.47 | 5.1 | 1.01 | 38845.94 | 297948.06 | 198330.6 |
177482300 | GB / Sand 2nd Jan | 1m7f Hcap Chs | 44198.57639 | 12458428 | Ibleo | 1 | 2.771342189 | 2.865297244 | 3.093340465 | 3.5 | 2.72 | 12 | 1.01 | 57468.66 | 468915.94 | 184558.08 |
177482395 | GB / Ling 2nd Jan | 6f Hcap | 44198.59722 | 28659808 | Rohaan | 0 | 2.44 | 2.44365781 | 2.795702203 | 3 | 2.36 | 1000 | 2.48 | 6884.58 | 214335.08 | 45763.14 |
177482305 | GB / Sand 2nd Jan | 2m Grd1 Nov Hrd | 44198.60069 | 11144887 | Metier | 1 | 2.98 | 2.623330988 | 2.336856915 | 3.05 | 2.16 | 3.3 | 1.01 | 68284.7 | 569650.62 | 223772.66 |
177482403 | GB / Ling 2nd Jan | 6f Nov Stks | 44198.62153 | 35856072 | Hidden Breeze | 1 | 1.899786009 | 1.700147533 | 1.695047545 | 1.93 | 1.56 | 3.15 | 1.01 | 5141.26 | 397544.9 | 115253.84 |
This can be done with a straight select, but it is not particularly easy. Access does not have a Row_Number function, so we need to generate ids in order to be able to do a self join on the adjacent rows. Furthermore, you want both the adjacent rows so we need to union the two results. That gives the following:
SELECT PrevRow.* FROM
(SELECT (SELECT COUNT (*) FROM TestDemo WHERE Event_Dt < td.Event_Dt) AS ROW_ID, td.Event_ID, td.Menu_Hint, td.Event_Name, td.Event_Dt, td.Selection_ID, td.Selection_Name, td.Win_Lose, td.Result, td.PPWAP, td.MORNINGWAP, td.PPMAX, td.PPMIN, td.IPMAX, td.IPMIN, td.MORNINGTRADEDVOL, td.PPTRADEDVOL, td.IPTRADEDVOL
FROM TestDemo td ORDER BY td.Event_Dt) PrevRow
INNER JOIN
(SELECT (SELECT COUNT (*) FROM TestDemo WHERE Event_Dt < td.Event_Dt) AS ROW_ID, td.Event_ID, td.Menu_Hint, td.Event_Name, td.Event_Dt, td.Selection_ID, td.Selection_Name, td.Win_Lose, td.Result, td.PPWAP, td.MORNINGWAP, td.PPMAX, td.PPMIN, td.IPMAX, td.IPMIN, td.MORNINGTRADEDVOL, td.PPTRADEDVOL, td.IPTRADEDVOL
FROM TestDemo td ORDER BY td.Event_Dt) NextRow
ON PrevRow.ROW_ID = NextRow.ROW_ID - 1
WHERE PrevRow.Result < 3 AND NextRow.Result < 3
UNION SELECT NextRow.* FROM
(SELECT (SELECT COUNT (*) FROM TestDemo WHERE Event_Dt < td.Event_Dt) AS ROW_ID, td.Event_ID, td.Menu_Hint, td.Event_Name, td.Event_Dt, td.Selection_ID, td.Selection_Name, td.Win_Lose, td.Result, td.PPWAP, td.MORNINGWAP, td.PPMAX, td.PPMIN, td.IPMAX, td.IPMIN, td.MORNINGTRADEDVOL, td.PPTRADEDVOL, td.IPTRADEDVOL
FROM TestDemo td ORDER BY td.Event_Dt) PrevRow
INNER JOIN
(SELECT (SELECT COUNT (*) FROM TestDemo WHERE Event_Dt < td.Event_Dt) AS ROW_ID, td.Event_ID, td.Menu_Hint, td.Event_Name, td.Event_Dt, td.Selection_ID, td.Selection_Name, td.Win_Lose, td.Result, td.PPWAP, td.MORNINGWAP, td.PPMAX, td.PPMIN, td.IPMAX, td.IPMIN, td.MORNINGTRADEDVOL, td.PPTRADEDVOL, td.IPTRADEDVOL
FROM TestDemo td ORDER BY td.Event_Dt) NextRow
ON PrevRow.ROW_ID = NextRow.ROW_ID - 1
WHERE PrevRow.Result < 3 AND NextRow.Result < 3;
In order to generate the ids we need to Order By on a given column or columns, in this case Event_dt. Notice how the ROW_ID is a sub-select based on the count of items that have a lesser event_dt than the current Event_dt.