While this join type is listed first in the JOINs submenu, in my experience, it’s the least used type. A CROSS JOIN of two tables or table-like database objects results in a Cartesian product. A what? Let’s first understand the result of a Cartesian product and then dive into a real-world problem where a CROSS JOIN shines. Consider the simple example below where there exists two tables: shirt and pant. The shirt table contains four rows of data, one for each possible color. Likewise, the pant table contains four rows of data, one for each possible color.
| shirt_id | shirt_color |
|---|---|
| 1 | Red |
| 2 | Blue |
| 3 | Black |
| 4 | Gray |
| pant_id | pant_color |
|---|---|
| 1 | Blue |
| 2 | Black |
| 3 | White |
| 4 | Tan |
The Cartesian product of these two tables would result in the following output:
| shirt_id | shirt_color | pant_id | pant_color |
|---|---|---|---|
| 1 | Red | 1 | Blue |
| 1 | Red | 2 | Black |
| 1 | Red | 3 | White |
| 1 | Red | 4 | Tan |
| 2 | Blue | 1 | Blue |
| 2 | Blue | 2 | Black |
| 2 | Blue | 3 | White |
| 2 | Blue | 4 | Tan |
| 3 | Black | 1 | Blue |
| 3 | Black | 2 | Black |
| 3 | Black | 3 | White |
| 3 | Black | 4 | Tan |
| 4 | Gray | 1 | Blue |
| 4 | Gray | 2 | Black |
| 4 | Gray | 3 | White |
| 4 | Gray | 4 | Tan |
You may quickly notice that for each shirt color, there is one row for each possible pant color and vice versa. That’s because the Cartesian product of these two tables combines each row from the shirt table with each row from the pant table, resulting in sixteen rows. Use caution when performing CROSS JOINs as they can potentially yield very large and sometimes unintended result sets.
Real-world Problem
CROSS JOINs are particularly useful in instances where gaps exist in your data and it’s desirable to fill them. These gaps tend to exist in temporal data, such as customer purchase dates, rainfall patterns, and hiring practices. Really, anything where data is captured over time. Let’s set the stage for understanding our first real-world problem and solution. The data used throughout this example and captured in the two tables below can be found at livesql.oracle.com.
Orders
The orders table contains one row per order submitted by a customer.
| order_id | order_date | order_mode | customer_id | order_status | order_total | sales_rep_id | promotion_id |
|---|---|---|---|---|---|---|---|
| 2458 | 16-AUG-07 03.34.12.234359 PM | direct | 101 | 0 | 78279.6 | 153 | – |
| 2397 | 19-NOV-07 02.41.54.696211 PM | direct | 102 | 1 | 42283.2 | 154 | – |
| 2454 | 02-OCT-07 05.49.34.678340 PM | direct | 103 | 1 | 6653.4 | 154 | – |
| 2354 | 14-JUL-08 06.18.23.234567 PM | direct | 104 | 0 | 46257 | 155 | – |
| 2358 | 08-JAN-08 05.03.12.654278 PM | direct | 105 | 2 | 7826 | 155 | – |
| 2381 | 14-MAY-08 08.59.08.843679 PM | direct | 106 | 3 | 23034.6 | 156 | – |
| 2440 | 31-AUG-07 09.53.06.008765 PM | direct | 107 | 3 | 70576.9 | 156 | – |
| 2357 | 08-JAN-06 08.19.44.123456 PM | direct | 108 | 5 | 59872.4 | 158 | – |
| 2394 | 10-FEB-08 09.22.35.564789 PM | direct | 109 | 5 | 21863 | 158 | – |
| 2435 | 02-SEP-07 11.22.53.134567 PM | direct | 144 | 6 | 62303 | 159 | – |
| 2455 | 20-SEP-07 11.34.11.456789 AM | direct | 145 | 7 | 14087.5 | 160 | – |
| 2379 | 16-MAY-07 02.22.24.234567 AM | direct | 146 | 8 | 17848.2 | 161 | – |
| 2396 | 02-FEB-06 01.34.56.345678 AM | direct | 147 | 8 | 34930 | 161 | – |
| 2406 | 29-JUN-07 04.41.20.098765 AM | direct | 148 | 8 | 2854.2 | 161 | – |
| 2434 | 13-SEP-07 05.49.30.647893 AM | direct | 149 | 8 | 268651.8 | 161 | – |
| 2436 | 02-SEP-07 06.18.04.378034 AM | direct | 116 | 8 | 6394.8 | 161 | – |
| 2446 | 27-JUL-07 07.03.08.302945 AM | direct | 117 | 8 | 103679.3 | 161 | – |
| 2447 | 27-JUL-08 08.59.10.223344 AM | direct | 101 | 8 | 33893.6 | 161 | – |
| 2432 | 14-SEP-07 09.53.40.223345 AM | direct | 102 | 10 | 10523 | 163 | – |
| 2433 | 13-SEP-07 10.19.00.654279 AM | direct | 103 | 10 | 78 | 163 | – |
| 2355 | 26-JAN-06 09.22.51.962632 AM | online | 104 | 8 | 94513.5 | – | – |
| 2356 | 26-JAN-08 09.22.41.934562 AM | online | 105 | 5 | 29473.8 | – | – |
| 2359 | 08-JAN-06 09.34.13.112233 PM | online | 106 | 9 | 5543.1 | – | – |
| 2360 | 14-NOV-07 12.22.31.223344 PM | online | 107 | 4 | 990.4 | – | – |
| 2361 | 13-NOV-07 01.34.21.986210 PM | online | 108 | 8 | 120131.3 | – | – |
| 2362 | 13-NOV-07 02.41.10.619477 PM | online | 109 | 4 | 92829.4 | – | – |
| 2363 | 23-OCT-07 05.49.56.346122 PM | online | 144 | 0 | 10082.3 | – | – |
| 2364 | 28-AUG-07 06.18.45.942399 PM | online | 145 | 4 | 9500 | – | – |
| 2365 | 28-AUG-07 07.03.34.003399 PM | online | 146 | 9 | 27455.3 | – | – |
| 2366 | 28-AUG-07 08.59.23.144778 PM | online | 147 | 5 | 37319.4 | – | – |
| 2367 | 27-JUN-08 09.53.32.335522 PM | online | 148 | 10 | 144054.8 | – | – |
| 2368 | 26-JUN-08 10.19.43.190089 PM | online | 149 | 10 | 60065 | – | – |
| 2369 | 26-JUN-07 11.22.54.009932 PM | online | 116 | 0 | 11097.4 | – | – |
| 2370 | 27-JUN-08 12.22.11.647398 AM | online | 117 | 4 | 126 | – | – |
| 2371 | 16-MAY-07 01.34.56.113356 AM | online | 118 | 6 | 79405.6 | – | – |
| 2372 | 27-FEB-07 12.22.33.356789 AM | online | 119 | 9 | 16447.2 | – | – |
| 2373 | 27-FEB-08 01.34.51.220065 AM | online | 120 | 4 | 416 | – | – |
| 2374 | 27-FEB-08 02.41.45.109654 AM | online | 121 | 0 | 4797 | – | – |
| 2375 | 26-FEB-07 03.49.50.459233 AM | online | 122 | 2 | 103834.4 | – | – |
| 2376 | 07-JUN-07 06.18.08.883310 AM | online | 123 | 6 | 11006.2 | – | – |
| 2377 | 07-JUN-07 07.03.01.001100 AM | online | 141 | 5 | 38017.8 | – | – |
| 2378 | 24-MAY-07 08.59.10.010101 AM | online | 142 | 5 | 25691.3 | – | – |
| 2380 | 16-MAY-07 09.53.02.909090 AM | online | 143 | 3 | 27132.6 | – | – |
| 2382 | 14-MAY-08 10.19.03.828321 AM | online | 144 | 8 | 71173 | – | – |
| 2383 | 12-MAY-08 11.22.30.545103 AM | online | 145 | 8 | 36374.7 | – | – |
| 2384 | 12-MAY-08 12.22.34.525972 PM | online | 146 | 3 | 29249.1 | – | – |
| 2385 | 08-DEC-07 11.34.11.331392 AM | online | 147 | 4 | 295892 | – | – |
| 2386 | 06-DEC-07 12.22.34.225609 PM | online | 148 | 10 | 21116.9 | – | – |
| 2387 | 11-MAR-07 03.34.56.536966 PM | online | 149 | 5 | 52758.9 | – | – |
| 2388 | 04-JUN-07 04.41.12.554435 PM | online | 150 | 4 | 282694.3 | – | – |
| 2389 | 04-JUN-08 05.49.43.546954 PM | online | 151 | 4 | 17620 | – | – |
| 2390 | 18-NOV-07 04.18.50.546851 PM | online | 152 | 9 | 7616.8 | – | – |
| 2391 | 27-FEB-06 05.03.03.828330 PM | direct | 153 | 2 | 48070.6 | 156 | – |
| 2392 | 21-JUL-07 08.59.57.571057 PM | direct | 154 | 9 | 26632 | 161 | – |
| 2393 | 10-FEB-08 07.53.19.528202 PM | direct | 155 | 4 | 23431.9 | 161 | – |
| 2395 | 02-FEB-06 08.19.11.227550 PM | direct | 156 | 3 | 68501 | 163 | – |
| 2398 | 19-NOV-07 09.22.53.224175 PM | direct | 157 | 9 | 7110.3 | 163 | – |
| 2399 | 19-NOV-07 10.22.38.340990 PM | direct | 158 | 0 | 25270.3 | 161 | – |
| 2400 | 10-JUL-07 01.34.29.559387 AM | direct | 159 | 2 | 69286.4 | 161 | – |
| 2401 | 10-JUL-07 02.22.53.554822 AM | direct | 160 | 3 | 969.2 | 163 | – |
| 2402 | 02-JUL-07 03.34.44.665170 AM | direct | 161 | 8 | 600 | 154 | – |
| 2403 | 01-JUL-07 04.49.13.615512 PM | direct | 162 | 0 | 220 | 154 | – |
| 2404 | 01-JUL-07 04.49.13.664085 PM | direct | 163 | 6 | 510 | 158 | – |
| 2405 | 01-JUL-07 04.49.13.678123 PM | direct | 164 | 5 | 1233 | 159 | – |
| 2407 | 29-JUN-07 07.03.21.526005 AM | direct | 165 | 9 | 2519 | 155 | – |
| 2408 | 29-JUN-07 08.59.31.333617 AM | direct | 166 | 1 | 309 | 158 | – |
| 2409 | 29-JUN-07 09.53.41.984501 AM | direct | 167 | 2 | 48 | 154 | – |
| 2410 | 24-MAY-08 10.19.51.985501 AM | direct | 168 | 6 | 45175 | 156 | – |
| 2411 | 24-MAY-07 11.22.10.548639 AM | direct | 169 | 8 | 15760.5 | 156 | – |
| 2412 | 29-MAR-06 10.22.09.509801 AM | direct | 170 | 9 | 66816 | 158 | – |
| 2413 | 29-MAR-08 01.34.04.525934 PM | direct | 101 | 5 | 48552 | 161 | – |
| 2414 | 29-MAR-07 02.22.40.536996 PM | direct | 102 | 8 | 10794.6 | 153 | – |
| 2415 | 29-MAR-06 01.34.50.545196 PM | direct | 103 | 6 | 310 | 161 | – |
| 2416 | 29-MAR-07 04.41.20.945676 PM | direct | 104 | 6 | 384 | 160 | – |
| 2417 | 20-MAR-07 05.49.10.974352 PM | direct | 105 | 5 | 1926.6 | 163 | – |
| 2418 | 20-MAR-04 04.18.21.862632 PM | direct | 106 | 4 | 5546.6 | 163 | – |
| 2419 | 20-MAR-07 07.03.32.764632 PM | direct | 107 | 3 | 31574 | 160 | – |
| 2420 | 13-MAR-07 08.59.43.666320 PM | direct | 108 | 2 | 29750 | 160 | – |
| 2421 | 12-MAR-07 09.53.54.562432 PM | direct | 109 | 1 | 72836 | – | – |
| 2422 | 16-DEC-07 08.19.55.462332 PM | direct | 144 | 2 | 11188.5 | 153 | – |
| 2423 | 21-NOV-07 10.22.33.362632 AM | direct | 145 | 3 | 10367.7 | 160 | – |
| 2424 | 21-NOV-07 10.22.33.263332 AM | direct | 146 | 4 | 13824 | 153 | – |
| 2425 | 16-NOV-06 11.34.22.162552 PM | direct | 147 | 5 | 1500.8 | 163 | – |
| 2426 | 17-NOV-06 12.22.11.262552 AM | direct | 148 | 6 | 7200 | – | – |
| 2427 | 10-NOV-07 01.34.22.362124 AM | direct | 149 | 7 | 9055 | 163 | – |
| 2428 | 10-NOV-07 02.41.34.463567 AM | direct | 116 | 8 | 14685.8 | – | – |
| 2429 | 10-NOV-07 03.49.25.526321 AM | direct | 117 | 9 | 50125 | 154 | – |
| 2430 | 02-OCT-07 06.18.36.663332 AM | direct | 101 | 8 | 29669.9 | 159 | – |
| 2431 | 14-SEP-06 07.03.04.763452 AM | direct | 102 | 1 | 5610.6 | 163 | – |
| 2437 | 01-SEP-06 08.59.15.826132 AM | direct | 103 | 4 | 13550 | 163 | – |
| 2438 | 01-SEP-07 09.53.26.934626 AM | direct | 104 | 0 | 5451 | 154 | – |
| 2439 | 31-AUG-07 10.19.37.811132 AM | direct | 105 | 1 | 22150.1 | 159 | – |
| 2441 | 01-AUG-08 11.22.48.734526 AM | direct | 106 | 5 | 2075.2 | 160 | – |
| 2442 | 27-JUL-06 12.22.59.662632 PM | direct | 107 | 9 | 52471.9 | 154 | – |
| 2443 | 27-JUL-06 01.34.16.562632 PM | direct | 108 | 0 | 3646 | 154 | – |
| 2444 | 27-JUL-07 02.22.27.462632 PM | direct | 109 | 1 | 77727.2 | 155 | – |
| 2445 | 27-JUL-06 03.34.38.362632 PM | direct | 144 | 8 | 5537.8 | 158 | – |
| 2448 | 18-JUN-07 04.41.49.262632 PM | direct | 145 | 5 | 1388 | 158 | – |
| 2449 | 13-JUN-07 05.49.07.162632 PM | direct | 146 | 6 | 86 | 155 | – |
| 2450 | 11-APR-07 06.18.10.362632 PM | direct | 147 | 3 | 1636 | 159 | – |
| 2451 | 17-DEC-07 05.03.52.562632 PM | direct | 148 | 7 | 10474.6 | 154 | – |
| 2452 | 06-OCT-07 08.59.43.462632 PM | direct | 149 | 5 | 12589 | 159 | – |
| 2453 | 04-OCT-07 09.53.34.362632 PM | direct | 116 | 0 | 129 | 153 | – |
| 2456 | 07-NOV-06 07.53.25.989889 PM | direct | 117 | 0 | 3878.4 | 163 | – |
| 2457 | 31-OCT-07 11.22.16.162632 PM | direct | 118 | 5 | 21586.2 | 159 | – |
Order Items
This table contains one row per order, per item in an order.
| order_id | line_item_id | product_id | unit_price | quantity |
|---|---|---|---|---|
| 2354 | 1 | 3106 | 48 | 61 |
| 2354 | 2 | 3114 | 96.8 | 43 |
| 2354 | 3 | 3123 | 79 | 47 |
| 2354 | 4 | 3129 | 41 | 47 |
| 2354 | 5 | 3139 | 21 | 48 |
| 2354 | 6 | 3143 | 16 | 53 |
| 2354 | 7 | 3150 | 17 | 58 |
| 2354 | 8 | 3163 | 30 | 61 |
| 2354 | 9 | 3165 | 37 | 64 |
| 2354 | 10 | 3167 | 51 | 68 |
| 2354 | 11 | 3170 | 145.2 | 70 |
| 2354 | 12 | 3176 | 113.3 | 72 |
| 2354 | 13 | 3182 | 61 | 77 |
| 2355 | 1 | 2289 | 46 | 200 |
| 2355 | 2 | 2308 | 57 | 185 |
| 2355 | 3 | 2311 | 86.9 | 188 |
| 2355 | 4 | 2322 | 19 | 188 |
| 2355 | 5 | 2323 | 17 | 190 |
| 2355 | 6 | 2326 | 1.1 | 192 |
| 2355 | 7 | 2330 | 1.1 | 197 |
| 2355 | 8 | 2339 | 25 | 199 |
| 2355 | 9 | 2359 | 226.6 | 204 |
| 2356 | 1 | 2264 | 199.1 | 38 |
| 2356 | 2 | 2274 | 148.5 | 34 |
| 2356 | 3 | 2293 | 98 | 40 |
| 2356 | 4 | 2299 | 72 | 44 |
| 2356 | 5 | 2308 | 58 | 47 |
| 2356 | 6 | 2311 | 95 | 51 |
| 2356 | 7 | 2316 | 22 | 55 |
| 2356 | 8 | 2323 | 18 | 55 |
| 2357 | 1 | 2211 | 3.3 | 140 |
| 2357 | 2 | 2245 | 462 | 26 |
| 2357 | 3 | 2252 | 788.7 | 26 |
| 2357 | 4 | 2257 | 371.8 | 29 |
| 2357 | 5 | 2262 | 95 | 29 |
| 2357 | 6 | 2268 | 75 | 32 |
| 2357 | 7 | 2276 | 236.5 | 38 |
| 2357 | 8 | 2289 | 48 | 41 |
| 2358 | 1 | 1781 | 226.6 | 9 |
| 2358 | 2 | 1782 | 125 | 4 |
| 2358 | 3 | 1797 | 316.8 | 12 |
| 2358 | 4 | 1803 | 55 | 13 |
| 2358 | 5 | 1808 | 55 | 14 |
| 2359 | 1 | 2337 | 270.6 | 1 |
| 2359 | 2 | 2359 | 249 | 1 |
| 2359 | 3 | 2370 | 91 | 17 |
| 2359 | 4 | 2373 | 6 | 17 |
| 2359 | 5 | 2377 | 96 | 17 |
| 2359 | 6 | 2380 | 5.5 | 17 |
| 2359 | 7 | 2381 | 97 | 17 |
| 2360 | 1 | 2058 | 23 | 29 |
| 2360 | 2 | 2093 | 7.7 | 42 |
| 2361 | 1 | 2289 | 46 | 180 |
| 2361 | 2 | 2299 | 76 | 180 |
| 2361 | 3 | 2308 | 53 | 182 |
| 2361 | 4 | 2311 | 86.9 | 185 |
| 2361 | 5 | 2316 | 22 | 187 |
| 2361 | 6 | 2326 | 1.1 | 194 |
| 2361 | 7 | 2334 | 3.3 | 198 |
| 2361 | 8 | 2359 | 248 | 208 |
| 2361 | 9 | 2365 | 76 | 209 |
| 2362 | 1 | 2289 | 48 | 200 |
| 2362 | 2 | 2299 | 76 | 160 |
| 2362 | 3 | 2311 | 93 | 164 |
| 2362 | 4 | 2316 | 22 | 168 |
| 2362 | 5 | 2326 | 1.1 | 173 |
| 2362 | 6 | 2334 | 3.3 | 177 |
| 2362 | 7 | 2339 | 25 | 179 |
| 2362 | 8 | 2359 | 248 | 189 |
| 2363 | 1 | 2264 | 199.1 | 9 |
| 2363 | 2 | 2272 | 129 | 7 |
| 2363 | 3 | 2299 | 74 | 25 |
| 2363 | 4 | 2308 | 57 | 26 |
| 2363 | 5 | 2311 | 86.9 | 29 |
| 2363 | 6 | 2319 | 24 | 31 |
| 2363 | 7 | 2323 | 18 | 34 |
| 2363 | 8 | 2326 | 1.1 | 37 |
| 2363 | 9 | 2334 | 3.3 | 42 |
| 2364 | 1 | 1910 | 14 | 6 |
| 2364 | 2 | 1948 | 470.8 | 20 |
| 2365 | 1 | 2289 | 48 | 92 |
| 2365 | 2 | 2293 | 99 | 28 |
| 2365 | 3 | 2302 | 133.1 | 29 |
| 2365 | 4 | 2308 | 56 | 29 |
| 2365 | 5 | 2311 | 95 | 29 |
| 2365 | 6 | 2316 | 22 | 34 |
| 2365 | 7 | 2319 | 24 | 38 |
| 2365 | 8 | 2322 | 19 | 43 |
| 2365 | 9 | 2326 | 1.1 | 44 |
| 2365 | 10 | 2335 | 97 | 45 |
| 2365 | 11 | 2339 | 25 | 50 |
| 2365 | 12 | 2340 | 72 | 54 |
| 2366 | 1 | 2359 | 226.6 | 8 |
| 2366 | 2 | 2373 | 6 | 7 |
| 2366 | 3 | 2382 | 804.1 | 10 |
| 2366 | 4 | 2394 | 116.6 | 11 |
| 2366 | 5 | 2395 | 120 | 12 |
| 2366 | 6 | 2400 | 418 | 16 |
| 2366 | 7 | 2406 | 195.8 | 20 |
| 2366 | 8 | 2409 | 194.7 | 22 |
| 2366 | 9 | 2415 | 339.9 | 24 |
| 2366 | 10 | 2419 | 69 | 24 |
| 2367 | 1 | 2289 | 48 | 99 |
| 2367 | 2 | 2302 | 147 | 32 |
| 2367 | 3 | 2308 | 54 | 39 |
| 2367 | 4 | 2322 | 22 | 45 |
| 2367 | 5 | 2326 | 1.1 | 48 |
| 2367 | 6 | 2330 | 1.1 | 52 |
| 2367 | 7 | 2335 | 91.3 | 54 |
| 2367 | 8 | 2350 | 2341.9 | 54 |
| 2368 | 1 | 3106 | 48 | 150 |
| 2368 | 2 | 3110 | 42 | 60 |
| 2368 | 3 | 3117 | 38 | 62 |
| 2368 | 4 | 3123 | 81 | 70 |
| 2368 | 5 | 3127 | 496 | 70 |
| 2368 | 6 | 3129 | 42 | 72 |
| 2368 | 7 | 3143 | 16 | 75 |
| 2368 | 8 | 3155 | 45 | 75 |
| 2369 | 1 | 3150 | 18 | 3 |
| 2369 | 2 | 3155 | 43 | 1 |
| 2369 | 3 | 3163 | 32 | 5 |
| 2369 | 4 | 3165 | 34 | 10 |
| 2369 | 5 | 3170 | 145.2 | 24 |
| 2369 | 6 | 3176 | 113.3 | 24 |
| 2369 | 7 | 3187 | 2.2 | 24 |
| 2369 | 8 | 3193 | 2.2 | 28 |
| 2369 | 9 | 3204 | 123 | 34 |
| 2370 | 1 | 1910 | 14 | 9 |
| 2371 | 1 | 2274 | 157 | 6 |
| 2371 | 2 | 2293 | 96 | 8 |
| 2371 | 3 | 2299 | 73 | 15 |
| 2371 | 4 | 2316 | 21 | 21 |
| 2371 | 5 | 2323 | 17 | 24 |
| 2371 | 6 | 2334 | 3.3 | 26 |
| 2371 | 7 | 2339 | 25 | 29 |
| 2371 | 8 | 2350 | 2341.9 | 32 |
| 2372 | 1 | 3106 | 48 | 6 |
| 2372 | 2 | 3108 | 74 | 2 |
| 2372 | 3 | 3110 | 42 | 7 |
| 2372 | 4 | 3123 | 81 | 10 |
| 2372 | 5 | 3127 | 496 | 13 |
| 2372 | 6 | 3134 | 17 | 17 |
| 2372 | 7 | 3143 | 15 | 21 |
| 2372 | 8 | 3163 | 30 | 30 |
| 2372 | 9 | 3167 | 54 | 32 |
| 2372 | 10 | 3170 | 145.2 | 36 |
| 2373 | 1 | 1820 | 49 | 8 |
| 2373 | 2 | 1825 | 24 | 1 |
| 2374 | 1 | 2422 | 150 | 10 |
| 2374 | 2 | 2423 | 78 | 6 |
| 2374 | 3 | 2449 | 78 | 15 |
| 2374 | 4 | 2467 | 79 | 21 |
| 2375 | 1 | 3106 | 42 | 140 |
| 2375 | 2 | 3112 | 71 | 84 |
| 2375 | 3 | 3117 | 38 | 85 |
| 2375 | 4 | 3127 | 488.4 | 86 |
| 2375 | 5 | 3133 | 45 | 88 |
| 2375 | 6 | 3134 | 17 | 90 |
| 2375 | 7 | 3143 | 15 | 93 |
| 2375 | 8 | 3150 | 17 | 93 |
| 2375 | 9 | 3155 | 45 | 98 |
| 2375 | 10 | 3163 | 30 | 99 |
| 2375 | 11 | 3165 | 36 | 103 |
| 2375 | 12 | 3171 | 132 | 107 |
| 2375 | 13 | 3176 | 120 | 109 |
| 2376 | 1 | 2270 | 60 | 14 |
| 2376 | 2 | 2276 | 236.5 | 4 |
| 2376 | 3 | 2293 | 99 | 13 |
| 2376 | 4 | 2299 | 73 | 17 |
| 2376 | 5 | 2302 | 133.1 | 21 |
| 2376 | 6 | 2311 | 95 | 25 |
| 2376 | 7 | 2316 | 21 | 27 |
| 2376 | 8 | 2319 | 25 | 32 |
| 2376 | 9 | 2326 | 1.1 | 33 |
| 2376 | 10 | 2334 | 3.3 | 36 |
| 2377 | 1 | 2289 | 42 | 130 |
| 2377 | 2 | 2302 | 147 | 119 |
| 2377 | 3 | 2311 | 95 | 121 |
| 2377 | 4 | 2319 | 25 | 131 |
| 2377 | 5 | 2326 | 1.1 | 132 |
| 2377 | 6 | 2330 | 1.1 | 136 |
| 2378 | 1 | 2403 | 113.3 | 20 |
| 2378 | 2 | 2412 | 95 | 2 |
| 2378 | 3 | 2414 | 438.9 | 7 |
| 2378 | 4 | 2417 | 27 | 11 |
| 2378 | 5 | 2423 | 79 | 11 |
| 2378 | 6 | 2424 | 217.8 | 15 |
| 2378 | 7 | 2457 | 4.4 | 25 |
| 2378 | 8 | 2459 | 624.8 | 25 |
| 2379 | 1 | 3106 | 42 | 92 |
| 2379 | 2 | 3114 | 98 | 14 |
| 2379 | 3 | 3127 | 488.4 | 23 |
| 2379 | 4 | 3139 | 21 | 34 |
| 2379 | 5 | 3140 | 19 | 35 |
| 2380 | 1 | 3106 | 42 | 26 |
| 2380 | 2 | 3108 | 75 | 18 |
| 2380 | 3 | 3117 | 38 | 23 |
| 2380 | 4 | 3127 | 488.4 | 24 |
| 2380 | 5 | 3133 | 46 | 28 |
| 2380 | 6 | 3140 | 20 | 30 |
| 2380 | 7 | 3143 | 15 | 31 |
| 2380 | 8 | 3150 | 17 | 33 |
| 2380 | 9 | 3155 | 45 | 33 |
| 2380 | 10 | 3163 | 32 | 36 |
| 2380 | 11 | 3167 | 52 | 37 |
| 2380 | 12 | 3176 | 113.3 | 40 |
| 2380 | 13 | 3187 | 2.2 | 40 |
| 2381 | 1 | 3117 | 38 | 110 |
| 2381 | 2 | 3124 | 77 | 44 |
| 2381 | 3 | 3133 | 44 | 44 |
| 2381 | 4 | 3139 | 20 | 45 |
| 2381 | 5 | 3143 | 15 | 48 |
| 2381 | 6 | 3163 | 35 | 55 |
| 2381 | 7 | 3176 | 113.3 | 62 |
| 2381 | 8 | 3183 | 47 | 63 |
| 2382 | 1 | 3106 | 42 | 160 |
| 2382 | 2 | 3110 | 43 | 64 |
| 2382 | 3 | 3114 | 100 | 65 |
| 2382 | 4 | 3117 | 35 | 66 |
| 2382 | 5 | 3123 | 79 | 71 |
| 2382 | 6 | 3127 | 496 | 71 |
| 2382 | 7 | 3129 | 42 | 76 |
| 2382 | 8 | 3139 | 21 | 79 |
| 2382 | 9 | 3143 | 15 | 82 |
| 2382 | 10 | 3163 | 29 | 89 |
| 2382 | 11 | 3165 | 37 | 92 |
| 2383 | 1 | 2409 | 194.7 | 37 |
| 2383 | 2 | 2418 | 56 | 45 |
| 2383 | 3 | 2422 | 146 | 46 |
| 2383 | 4 | 2430 | 174 | 50 |
| 2383 | 5 | 2439 | 115.5 | 54 |
| 2383 | 6 | 2457 | 4.4 | 62 |
| 2383 | 7 | 2462 | 75 | 63 |
| 2384 | 1 | 2289 | 43 | 95 |
| 2384 | 2 | 2299 | 71 | 48 |
| 2384 | 3 | 2316 | 21 | 58 |
| 2384 | 4 | 2322 | 22 | 59 |
| 2384 | 5 | 2330 | 1.1 | 61 |
| 2384 | 6 | 2359 | 249 | 77 |
| 2385 | 1 | 2289 | 43 | 200 |
| 2385 | 2 | 2302 | 133.1 | 87 |
| 2385 | 3 | 2311 | 86.9 | 96 |
| 2385 | 4 | 2319 | 25 | 97 |
| 2385 | 5 | 2335 | 91.3 | 106 |
| 2385 | 6 | 2350 | 2341.9 | 109 |
| 2386 | 1 | 2330 | 1.1 | 7 |
| 2386 | 2 | 2334 | 3.3 | 5 |
| 2386 | 3 | 2340 | 71 | 14 |
| 2386 | 4 | 2365 | 77 | 27 |
| 2386 | 5 | 2370 | 90 | 28 |
| 2386 | 6 | 2375 | 73 | 32 |
| 2386 | 7 | 2378 | 271.7 | 33 |
| 2386 | 8 | 2394 | 116.6 | 36 |
| 2387 | 1 | 2211 | 3.3 | 52 |
| 2387 | 2 | 2243 | 332.2 | 20 |
| 2387 | 3 | 2245 | 462 | 22 |
| 2387 | 4 | 2252 | 788.7 | 27 |
| 2387 | 5 | 2253 | 354.2 | 32 |
| 2387 | 6 | 2268 | 75 | 42 |
| 2388 | 1 | 2289 | 43 | 150 |
| 2388 | 2 | 2293 | 94 | 90 |
| 2388 | 3 | 2308 | 56 | 96 |
| 2388 | 4 | 2330 | 1.1 | 105 |
| 2388 | 5 | 2350 | 2341.9 | 112 |
| 2389 | 1 | 3106 | 43 | 180 |
| 2389 | 2 | 3112 | 73 | 18 |
| 2389 | 3 | 3123 | 80 | 21 |
| 2389 | 4 | 3129 | 46 | 22 |
| 2389 | 5 | 3143 | 15 | 30 |
| 2389 | 6 | 3155 | 46 | 33 |
| 2389 | 7 | 3165 | 34 | 43 |
| 2389 | 8 | 3167 | 52 | 47 |
| 2390 | 1 | 1910 | 14 | 4 |
| 2390 | 2 | 1912 | 14 | 2 |
| 2390 | 3 | 1948 | 470.8 | 16 |
| 2391 | 1 | 1787 | 101 | 5 |
| 2391 | 2 | 1791 | 262.9 | 3 |
| 2391 | 3 | 1797 | 348 | 7 |
| 2391 | 4 | 1799 | 961.4 | 10 |
| 2391 | 5 | 1808 | 55 | 15 |
| 2391 | 6 | 1820 | 52 | 18 |
| 2391 | 7 | 1822 | 1433.3 | 23 |
| 2392 | 1 | 3106 | 43 | 63 |
| 2392 | 2 | 3112 | 73 | 57 |
| 2392 | 3 | 3117 | 38 | 58 |
| 2392 | 4 | 3124 | 77 | 63 |
| 2392 | 5 | 3133 | 45 | 66 |
| 2392 | 6 | 3139 | 21 | 68 |
| 2392 | 7 | 3150 | 18 | 72 |
| 2392 | 8 | 3155 | 49 | 77 |
| 2392 | 9 | 3165 | 40 | 81 |
| 2393 | 1 | 3051 | 12 | 10 |
| 2393 | 2 | 3060 | 295 | 2 |
| 2393 | 3 | 3064 | 1017 | 5 |
| 2393 | 4 | 3069 | 385 | 8 |
| 2393 | 5 | 3077 | 260.7 | 8 |
| 2393 | 6 | 3082 | 78 | 10 |
| 2393 | 7 | 3086 | 211 | 13 |
| 2393 | 8 | 3087 | 108.9 | 14 |
| 2393 | 9 | 3091 | 278 | 19 |
| 2393 | 10 | 3099 | 3.3 | 19 |
| 2393 | 11 | 3108 | 69.3 | 30 |
| 2394 | 1 | 3117 | 41 | 90 |
| 2394 | 2 | 3123 | 77 | 36 |
| 2394 | 3 | 3124 | 82 | 39 |
| 2394 | 4 | 3129 | 46 | 41 |
| 2394 | 5 | 3133 | 46 | 45 |
| 2394 | 6 | 3134 | 18 | 45 |
| 2394 | 7 | 3140 | 19 | 48 |
| 2394 | 8 | 3155 | 49 | 61 |
| 2394 | 9 | 3167 | 52 | 68 |
| 2395 | 1 | 2211 | 3.3 | 110 |
| 2395 | 2 | 2243 | 332.2 | 27 |
| 2395 | 3 | 2252 | 788.7 | 30 |
| 2395 | 4 | 2255 | 690.8 | 34 |
| 2395 | 5 | 2264 | 199.1 | 34 |
| 2395 | 6 | 2268 | 71 | 37 |
| 2395 | 7 | 2270 | 64 | 41 |
| 2396 | 1 | 3106 | 44 | 150 |
| 2396 | 2 | 3108 | 76 | 75 |
| 2396 | 3 | 3110 | 44 | 79 |
| 2396 | 4 | 3114 | 100 | 83 |
| 2396 | 5 | 3140 | 19 | 93 |
| 2396 | 6 | 3150 | 17 | 93 |
| 2396 | 7 | 3155 | 47 | 98 |
| 2396 | 8 | 3163 | 29 | 100 |
| 2397 | 1 | 2976 | 52 | 2 |
| 2397 | 2 | 2986 | 120 | 8 |
| 2397 | 3 | 2999 | 880 | 16 |
| 2397 | 4 | 3000 | 1696.2 | 16 |
| 2398 | 1 | 2471 | 482.9 | 5 |
| 2398 | 2 | 2537 | 193.6 | 23 |
| 2398 | 3 | 2594 | 9 | 27 |
| 2399 | 1 | 2289 | 44 | 120 |
| 2399 | 2 | 2293 | 94 | 12 |
| 2399 | 3 | 2299 | 76 | 15 |
| 2399 | 4 | 2302 | 149 | 17 |
| 2399 | 5 | 2308 | 56 | 17 |
| 2399 | 6 | 2311 | 86.9 | 20 |
| 2399 | 7 | 2316 | 22 | 24 |
| 2399 | 8 | 2326 | 1.1 | 27 |
| 2399 | 9 | 2330 | 1.1 | 28 |
| 2399 | 10 | 2335 | 100 | 33 |
| 2399 | 11 | 2359 | 226.6 | 38 |
| 2400 | 1 | 2976 | 52 | 4 |
| 2400 | 2 | 2982 | 41 | 1 |
| 2400 | 3 | 2986 | 123 | 4 |
| 2400 | 4 | 2999 | 880 | 16 |
| 2400 | 5 | 3003 | 2866.6 | 19 |
| 2401 | 1 | 2492 | 41 | 4 |
| 2401 | 2 | 2496 | 268.4 | 3 |
| 2402 | 1 | 2536 | 75 | 8 |
| 2403 | 1 | 2522 | 44 | 5 |
| 2404 | 1 | 2721 | 85 | 6 |
| 2404 | 2 | 2808 | 0 | 37 |
| 2405 | 1 | 2638 | 137 | 9 |
| 2406 | 1 | 2721 | 85 | 5 |
| 2406 | 2 | 2725 | 3.3 | 4 |
| 2406 | 3 | 2761 | 26 | 19 |
| 2406 | 4 | 2782 | 62 | 31 |
| 2407 | 1 | 2721 | 85 | 5 |
| 2407 | 2 | 2752 | 86 | 18 |
| 2407 | 3 | 2761 | 26 | 21 |
| 2408 | 1 | 2751 | 61 | 3 |
| 2408 | 2 | 2761 | 26 | 1 |
| 2408 | 3 | 2783 | 10 | 10 |
| 2409 | 1 | 2810 | 6 | 8 |
| 2410 | 1 | 2976 | 46 | 10 |
| 2410 | 2 | 2982 | 40 | 5 |
| 2410 | 3 | 2986 | 120 | 6 |
| 2410 | 4 | 2995 | 68 | 8 |
| 2410 | 5 | 3003 | 2866.6 | 15 |
| 2410 | 6 | 3051 | 12 | 21 |
| 2411 | 1 | 3082 | 81 | 2 |
| 2411 | 2 | 3086 | 208 | 2 |
| 2411 | 3 | 3097 | 2.2 | 6 |
| 2411 | 4 | 3099 | 3.3 | 7 |
| 2411 | 5 | 3101 | 73 | 8 |
| 2411 | 6 | 3106 | 45 | 11 |
| 2411 | 7 | 3112 | 72 | 17 |
| 2411 | 8 | 3123 | 75 | 17 |
| 2411 | 9 | 3124 | 84 | 17 |
| 2411 | 10 | 3127 | 488.4 | 18 |
| 2411 | 11 | 3133 | 43 | 23 |
| 2411 | 12 | 3143 | 15 | 24 |
| 2412 | 1 | 3106 | 46 | 170 |
| 2412 | 2 | 3114 | 98 | 68 |
| 2412 | 3 | 3123 | 71.5 | 68 |
| 2412 | 4 | 3127 | 492 | 72 |
| 2412 | 5 | 3134 | 18 | 75 |
| 2412 | 6 | 3139 | 20 | 79 |
| 2412 | 7 | 3143 | 16 | 80 |
| 2412 | 8 | 3163 | 30 | 92 |
| 2412 | 9 | 3167 | 54 | 94 |
| 2413 | 1 | 3108 | 77 | 200 |
| 2413 | 2 | 3112 | 75 | 40 |
| 2413 | 3 | 3117 | 35 | 44 |
| 2413 | 4 | 3127 | 492 | 44 |
| 2413 | 5 | 3129 | 46 | 45 |
| 2413 | 6 | 3155 | 47 | 62 |
| 2413 | 7 | 3163 | 30 | 66 |
| 2414 | 1 | 3208 | 1.1 | 8 |
| 2414 | 2 | 3216 | 30 | 7 |
| 2414 | 3 | 3220 | 41 | 9 |
| 2414 | 4 | 3234 | 39 | 11 |
| 2414 | 5 | 3246 | 212.3 | 18 |
| 2414 | 6 | 3253 | 206.8 | 23 |
| 2414 | 7 | 3260 | 50 | 24 |
| 2415 | 1 | 2751 | 62 | 5 |
| 2416 | 1 | 2870 | 4.4 | 10 |
| 2416 | 2 | 2878 | 340 | 1 |
| 2417 | 1 | 2870 | 4.4 | 9 |
| 2417 | 2 | 2976 | 51 | 37 |
| 2418 | 1 | 3082 | 75 | 15 |
| 2418 | 2 | 3090 | 187 | 12 |
| 2418 | 3 | 3097 | 2.2 | 13 |
| 2418 | 4 | 3110 | 45 | 20 |
| 2418 | 5 | 3140 | 20 | 31 |
| 2418 | 6 | 3150 | 17 | 37 |
| 2419 | 1 | 3106 | 46 | 150 |
| 2419 | 2 | 3114 | 99 | 45 |
| 2419 | 3 | 3123 | 71.5 | 48 |
| 2419 | 4 | 3129 | 43 | 57 |
| 2419 | 5 | 3133 | 45 | 61 |
| 2419 | 6 | 3150 | 17 | 69 |
| 2419 | 7 | 3155 | 47 | 72 |
| 2419 | 8 | 3165 | 35 | 76 |
| 2419 | 9 | 3167 | 54 | 81 |
| 2420 | 1 | 3106 | 46 | 110 |
| 2420 | 2 | 3110 | 46 | 11 |
| 2420 | 3 | 3114 | 101 | 15 |
| 2420 | 4 | 3123 | 79 | 20 |
| 2420 | 5 | 3127 | 496 | 22 |
| 2420 | 6 | 3133 | 48 | 29 |
| 2420 | 7 | 3140 | 19 | 34 |
| 2420 | 8 | 3143 | 15 | 39 |
| 2420 | 9 | 3163 | 30 | 45 |
| 2420 | 10 | 3171 | 132 | 47 |
| 2421 | 1 | 3106 | 46 | 160 |
| 2421 | 2 | 3108 | 78 | 160 |
| 2421 | 3 | 3112 | 72 | 164 |
| 2421 | 4 | 3117 | 41 | 165 |
| 2421 | 5 | 3123 | 80 | 168 |
| 2421 | 6 | 3129 | 43 | 172 |
| 2421 | 7 | 3143 | 15 | 176 |
| 2421 | 8 | 3150 | 17 | 176 |
| 2421 | 9 | 3155 | 43 | 185 |
| 2422 | 1 | 3106 | 46 | 18 |
| 2422 | 2 | 3117 | 41 | 5 |
| 2422 | 3 | 3123 | 71.5 | 5 |
| 2422 | 4 | 3127 | 496 | 9 |
| 2422 | 5 | 3133 | 46 | 11 |
| 2422 | 6 | 3150 | 17 | 25 |
| 2422 | 7 | 3155 | 43 | 29 |
| 2422 | 8 | 3163 | 30 | 35 |
| 2422 | 9 | 3167 | 54 | 39 |
| 2423 | 1 | 3220 | 39 | 8 |
| 2423 | 2 | 3224 | 32 | 3 |
| 2423 | 3 | 3245 | 214.5 | 13 |
| 2423 | 4 | 3246 | 212.3 | 14 |
| 2423 | 5 | 3251 | 26 | 16 |
| 2423 | 6 | 3258 | 78 | 21 |
| 2423 | 7 | 3290 | 65 | 33 |
| 2424 | 1 | 3350 | 693 | 11 |
| 2424 | 2 | 3354 | 541 | 9 |
| 2424 | 3 | 3359 | 111 | 12 |
| 2425 | 1 | 3501 | 492.8 | 3 |
| 2425 | 2 | 3511 | 9 | 2 |
| 2425 | 3 | 3515 | 1.1 | 4 |
| 2426 | 1 | 3193 | 2.2 | 6 |
| 2426 | 2 | 3216 | 30 | 11 |
| 2426 | 3 | 3234 | 34 | 18 |
| 2426 | 4 | 3248 | 212.3 | 26 |
| 2426 | 5 | 3252 | 25 | 29 |
| 2427 | 1 | 2430 | 173 | 12 |
| 2427 | 2 | 2439 | 121 | 1 |
| 2427 | 3 | 2457 | 4.4 | 6 |
| 2427 | 4 | 2464 | 66 | 6 |
| 2427 | 5 | 2470 | 76 | 6 |
| 2427 | 6 | 2496 | 268.4 | 19 |
| 2427 | 7 | 2522 | 40 | 22 |
| 2428 | 1 | 3106 | 42 | 7 |
| 2428 | 2 | 3108 | 76 | 1 |
| 2428 | 3 | 3114 | 101 | 5 |
| 2428 | 4 | 3117 | 41 | 6 |
| 2428 | 5 | 3123 | 80 | 8 |
| 2428 | 6 | 3127 | 498 | 12 |
| 2428 | 7 | 3133 | 48 | 12 |
| 2428 | 8 | 3143 | 16 | 13 |
| 2428 | 9 | 3150 | 17 | 16 |
| 2428 | 10 | 3170 | 145.2 | 24 |
| 2428 | 11 | 3173 | 86 | 28 |
| 2429 | 1 | 3106 | 42 | 200 |
| 2429 | 2 | 3108 | 76 | 40 |
| 2429 | 3 | 3110 | 45 | 43 |
| 2429 | 4 | 3123 | 79 | 46 |
| 2429 | 5 | 3127 | 497 | 49 |
| 2429 | 6 | 3133 | 46 | 52 |
| 2429 | 7 | 3139 | 21 | 54 |
| 2429 | 8 | 3150 | 17 | 55 |
| 2429 | 9 | 3163 | 30 | 63 |
| 2429 | 10 | 3165 | 36 | 67 |
| 2430 | 1 | 3350 | 693 | 6 |
| 2430 | 2 | 3353 | 454.3 | 5 |
| 2430 | 3 | 3359 | 111 | 10 |
| 2430 | 4 | 3362 | 94 | 10 |
| 2430 | 5 | 3501 | 492.8 | 43 |
| 2431 | 1 | 3097 | 2.2 | 3 |
| 2431 | 2 | 3106 | 48 | 1 |
| 2431 | 3 | 3114 | 101 | 3 |
| 2431 | 4 | 3117 | 41 | 7 |
| 2431 | 5 | 3127 | 498 | 9 |
| 2431 | 6 | 3129 | 44 | 11 |
| 2432 | 1 | 2976 | 49 | 3 |
| 2432 | 2 | 2982 | 43 | 2 |
| 2432 | 3 | 2986 | 122 | 5 |
| 2432 | 4 | 2999 | 880 | 11 |
| 2433 | 1 | 1910 | 13 | 6 |
| 2434 | 1 | 2211 | 3.3 | 81 |
| 2434 | 2 | 2236 | 949.3 | 84 |
| 2434 | 3 | 2245 | 462 | 86 |
| 2434 | 4 | 2252 | 788.7 | 87 |
| 2434 | 5 | 2254 | 408.1 | 92 |
| 2434 | 6 | 2257 | 371.8 | 94 |
| 2434 | 7 | 2268 | 75 | 104 |
| 2435 | 1 | 2289 | 48 | 35 |
| 2435 | 2 | 2299 | 75 | 4 |
| 2435 | 3 | 2311 | 86.9 | 8 |
| 2435 | 4 | 2316 | 21 | 10 |
| 2435 | 5 | 2323 | 18 | 12 |
| 2435 | 6 | 2334 | 3.3 | 14 |
| 2435 | 7 | 2339 | 25 | 19 |
| 2435 | 8 | 2350 | 2341.9 | 24 |
| 2435 | 9 | 2365 | 75 | 33 |
| 2436 | 1 | 3208 | 1.1 | 8 |
| 2436 | 2 | 3209 | 13 | 2 |
| 2436 | 3 | 3216 | 30 | 3 |
| 2436 | 4 | 3224 | 32 | 6 |
| 2436 | 5 | 3245 | 214.5 | 16 |
| 2436 | 6 | 3250 | 27 | 18 |
| 2436 | 7 | 3256 | 36 | 18 |
| 2436 | 8 | 3290 | 63 | 24 |
| 2437 | 1 | 2423 | 83 | 8 |
| 2437 | 2 | 2430 | 157.3 | 4 |
| 2437 | 3 | 2457 | 4.4 | 17 |
| 2437 | 4 | 2462 | 76 | 19 |
| 2437 | 5 | 2464 | 64 | 21 |
| 2437 | 6 | 2496 | 268.4 | 35 |
| 2438 | 1 | 2995 | 69 | 3 |
| 2438 | 2 | 3000 | 1748 | 3 |
| 2439 | 1 | 1797 | 316.8 | 9 |
| 2439 | 2 | 1806 | 45 | 4 |
| 2439 | 3 | 1820 | 54 | 9 |
| 2439 | 4 | 1822 | 1433.3 | 13 |
| 2440 | 1 | 2289 | 48 | 19 |
| 2440 | 2 | 2293 | 98 | 2 |
| 2440 | 3 | 2302 | 150 | 2 |
| 2440 | 4 | 2311 | 86.9 | 7 |
| 2440 | 5 | 2322 | 23 | 10 |
| 2440 | 6 | 2330 | 1.1 | 13 |
| 2440 | 7 | 2334 | 3.3 | 15 |
| 2440 | 8 | 2337 | 270.6 | 19 |
| 2440 | 9 | 2339 | 25 | 23 |
| 2440 | 10 | 2350 | 2341.9 | 24 |
| 2440 | 11 | 2359 | 226.6 | 28 |
| 2441 | 1 | 2536 | 80 | 9 |
| 2441 | 2 | 2537 | 193.6 | 7 |
| 2442 | 1 | 2402 | 127 | 26 |
| 2442 | 2 | 2410 | 350.9 | 21 |
| 2442 | 3 | 2418 | 60 | 23 |
| 2442 | 4 | 2422 | 144 | 25 |
| 2442 | 5 | 2430 | 173 | 28 |
| 2442 | 6 | 2439 | 115.5 | 30 |
| 2442 | 7 | 2459 | 624.8 | 40 |
| 2442 | 8 | 2467 | 80 | 44 |
| 2443 | 1 | 3106 | 44 | 3 |
| 2443 | 2 | 3114 | 101 | 2 |
| 2443 | 3 | 3124 | 82 | 6 |
| 2443 | 4 | 3139 | 20 | 12 |
| 2443 | 5 | 3143 | 15 | 17 |
| 2443 | 6 | 3150 | 18 | 17 |
| 2443 | 7 | 3155 | 43 | 21 |
| 2443 | 8 | 3165 | 36 | 31 |
| 2444 | 1 | 3117 | 36 | 110 |
| 2444 | 2 | 3127 | 488.4 | 88 |
| 2444 | 3 | 3133 | 43 | 90 |
| 2444 | 4 | 3139 | 21 | 93 |
| 2444 | 5 | 3140 | 19 | 95 |
| 2444 | 6 | 3143 | 15 | 97 |
| 2444 | 7 | 3150 | 17 | 100 |
| 2444 | 8 | 3155 | 43 | 104 |
| 2444 | 9 | 3165 | 37 | 112 |
| 2444 | 10 | 3172 | 37 | 112 |
| 2444 | 11 | 3182 | 63 | 115 |
| 2445 | 1 | 2270 | 66 | 5 |
| 2445 | 2 | 2278 | 49 | 3 |
| 2445 | 3 | 2293 | 97 | 11 |
| 2445 | 4 | 2299 | 72 | 14 |
| 2445 | 5 | 2311 | 95 | 24 |
| 2445 | 6 | 2319 | 25 | 27 |
| 2445 | 7 | 2326 | 1.1 | 28 |
| 2446 | 1 | 2289 | 48 | 47 |
| 2446 | 2 | 2326 | 1.1 | 34 |
| 2446 | 3 | 2330 | 1.1 | 36 |
| 2446 | 4 | 2337 | 270.6 | 37 |
| 2446 | 5 | 2350 | 2341.9 | 39 |
| 2447 | 1 | 2264 | 199.1 | 29 |
| 2447 | 2 | 2266 | 297 | 23 |
| 2447 | 3 | 2272 | 121 | 24 |
| 2447 | 4 | 2278 | 50 | 25 |
| 2447 | 5 | 2293 | 97 | 34 |
| 2447 | 6 | 2299 | 76 | 35 |
| 2447 | 7 | 2302 | 133.1 | 37 |
| 2447 | 8 | 2308 | 54 | 40 |
| 2447 | 9 | 2311 | 93 | 44 |
| 2448 | 1 | 3106 | 44 | 3 |
| 2448 | 2 | 3114 | 99 | 0 |
| 2448 | 3 | 3133 | 42 | 11 |
| 2448 | 4 | 3134 | 17 | 14 |
| 2448 | 5 | 3139 | 20 | 15 |
| 2448 | 6 | 3143 | 16 | 16 |
| 2449 | 1 | 2522 | 43 | 2 |
| 2450 | 1 | 3191 | 1.1 | 4 |
| 2450 | 2 | 3193 | 2.2 | 3 |
| 2450 | 3 | 3197 | 44 | 5 |
| 2450 | 4 | 3216 | 29 | 11 |
| 2450 | 5 | 3220 | 41 | 14 |
| 2450 | 6 | 3224 | 32 | 16 |
| 2451 | 1 | 1910 | 13 | 9 |
| 2451 | 2 | 1948 | 470.8 | 22 |
| 2452 | 1 | 3117 | 38 | 140 |
| 2452 | 2 | 3139 | 20 | 10 |
| 2452 | 3 | 3143 | 15 | 12 |
| 2452 | 4 | 3150 | 17 | 13 |
| 2452 | 5 | 3155 | 44 | 13 |
| 2452 | 6 | 3165 | 34 | 18 |
| 2452 | 7 | 3170 | 145.2 | 20 |
| 2452 | 8 | 3172 | 37 | 20 |
| 2452 | 9 | 3173 | 80 | 23 |
| 2453 | 1 | 2492 | 43 | 3 |
| 2454 | 1 | 2289 | 43 | 120 |
| 2454 | 2 | 2293 | 99 | 0 |
| 2454 | 3 | 2299 | 71 | 3 |
| 2454 | 4 | 2308 | 55 | 12 |
| 2454 | 5 | 2316 | 21 | 13 |
| 2454 | 6 | 2323 | 18 | 16 |
| 2454 | 7 | 2334 | 3.3 | 18 |
| 2455 | 1 | 2471 | 482.9 | 3 |
| 2455 | 2 | 2496 | 268.4 | 32 |
| 2455 | 3 | 2536 | 75 | 54 |
| 2456 | 1 | 2522 | 40 | 5 |
| 2456 | 2 | 2537 | 193.6 | 19 |
| 2457 | 1 | 3108 | 72 | 36 |
| 2457 | 2 | 3123 | 79 | 14 |
| 2457 | 3 | 3127 | 488.4 | 17 |
| 2457 | 4 | 3150 | 17 | 27 |
| 2457 | 5 | 3155 | 44 | 32 |
| 2457 | 6 | 3170 | 145.2 | 42 |
| 2457 | 7 | 3172 | 36 | 45 |
| 2458 | 1 | 3117 | 38 | 140 |
| 2458 | 2 | 3123 | 79 | 112 |
| 2458 | 3 | 3127 | 488.4 | 114 |
| 2458 | 4 | 3134 | 17 | 115 |
| 2458 | 5 | 3143 | 15 | 129 |
| 2458 | 6 | 3163 | 32 | 142 |
Monthly Sales Representative Performance
In this problem, company sales representatives are responsible for working with customers to generate sales through customer order submissions. Company management wishes to understand sales representative performance on a monthly basis by examining the number of orders placed by customers through each sales representative and the corresponding product quantities and sales. Management has also expressed it’s important to highlight and understand those months where sales representatives were not involved in any customer order submissions. Given this problem, let’s get started.
We’ll start off with simply generating the data used to fill the temporal gaps. This is important because data is generated when a customer submits an order, not when they do not, so we’ll need to take the necessary steps to ensure months where a sales representative was inactive are included in the data. This data generation process relies on using a recursive common table expression (CTE). To follow along, it is not required to be familiar with the concept; however, if you’d like to read more on recursive common table expressions, see the recursion section.
Generating the Data
The recursive CTE below returns one row per sales representative and month combination for those months between the month of the first order and most recent order submitted. Both date endpoints are included. By specifying a fixed starting point and a dynamic end point for reporting month values, we can ensure the minimal number of rows are generated and our code dedicated to capturing the most recent reporting month is not hardcoded. Hardcoding the end point would require manual intervention for each month that passes. That wouldn’t be ideal as it would increase the cost of maintaining the solution. An additional optimization could be implemented by generating reporting month values for sales representatives starting with their individual hire dates instead of starting with the date of the first order submitted. This page is meant to go in-depth on employing low-maintenance and/or optimized solutions, so let’s carry on.
WITH calendar (reporting_month) AS (
SELECT
TRUNC(MIN(oe.orders.order_date), 'MONTH')
FROM
oe.orders
UNION ALL
SELECT
ADD_MONTHS(calendar.reporting_month, 1)
FROM
calendar
WHERE
calendar.reporting_month < (
SELECT
TRUNC(MAX(oe.orders.order_date), 'MONTH')
FROM
oe.orders
)
),
sales_representative AS (
SELECT
DISTINCT oe.orders.sales_rep_id
FROM
oe.orders
WHERE
oe.orders.sales_rep_id IS NOT NULL
)
SELECT
sales_representative.sales_rep_id,
calendar.reporting_month
FROM
calendar
CROSS JOIN
sales_representative;
| sales_rep_id | reporting_month |
|---|---|
| 153 | 2004-03-01 |
| 153 | 2004-04-01 |
| 153 | 2004-05-01 |
| 153 | 2004-06-01 |
| 153 | 2004-07-01 |
| 153 | 2004-08-01 |
| 153 | 2004-09-01 |
| 153 | 2004-10-01 |
| 153 | 2004-11-01 |
| 153 | 2004-12-01 |
| 153 | 2005-01-01 |
| 153 | 2005-02-01 |
| 153 | 2005-03-01 |
| 153 | 2005-04-01 |
| 153 | 2005-05-01 |
| 153 | 2005-06-01 |
| 153 | 2005-07-01 |
| 153 | 2005-08-01 |
| 153 | 2005-09-01 |
| 153 | 2005-10-01 |
| 153 | 2005-11-01 |
| 153 | 2005-12-01 |
| 153 | 2006-01-01 |
| 153 | 2006-02-01 |
| 153 | 2006-03-01 |
| 153 | 2006-04-01 |
| 153 | 2006-05-01 |
| 153 | 2006-06-01 |
| 153 | 2006-07-01 |
| 153 | 2006-08-01 |
| 153 | 2006-09-01 |
| 153 | 2006-10-01 |
| 153 | 2006-11-01 |
| 153 | 2006-12-01 |
| 153 | 2007-01-01 |
| 153 | 2007-02-01 |
| 153 | 2007-03-01 |
| 153 | 2007-04-01 |
| 153 | 2007-05-01 |
| 153 | 2007-06-01 |
| 153 | 2007-07-01 |
| 153 | 2007-08-01 |
| 153 | 2007-09-01 |
| 153 | 2007-10-01 |
| 153 | 2007-11-01 |
| 153 | 2007-12-01 |
| 153 | 2008-01-01 |
| 153 | 2008-02-01 |
| 153 | 2008-03-01 |
| 153 | 2008-04-01 |
| 153 | 2008-05-01 |
| 153 | 2008-06-01 |
| 153 | 2008-07-01 |
| 153 | 2008-08-01 |
| 154 | 2004-03-01 |
| 154 | 2004-04-01 |
| 154 | 2004-05-01 |
| 154 | 2004-06-01 |
| 154 | 2004-07-01 |
| 154 | 2004-08-01 |
| 154 | 2004-09-01 |
| 154 | 2004-10-01 |
| 154 | 2004-11-01 |
| 154 | 2004-12-01 |
| 154 | 2005-01-01 |
| 154 | 2005-02-01 |
| 154 | 2005-03-01 |
| 154 | 2005-04-01 |
| 154 | 2005-05-01 |
| 154 | 2005-06-01 |
| 154 | 2005-07-01 |
| 154 | 2005-08-01 |
| 154 | 2005-09-01 |
| 154 | 2005-10-01 |
| 154 | 2005-11-01 |
| 154 | 2005-12-01 |
| 154 | 2006-01-01 |
| 154 | 2006-02-01 |
| 154 | 2006-03-01 |
| 154 | 2006-04-01 |
| 154 | 2006-05-01 |
| 154 | 2006-06-01 |
| 154 | 2006-07-01 |
| 154 | 2006-08-01 |
| 154 | 2006-09-01 |
| 154 | 2006-10-01 |
| 154 | 2006-11-01 |
| 154 | 2006-12-01 |
| 154 | 2007-01-01 |
| 154 | 2007-02-01 |
| 154 | 2007-03-01 |
| 154 | 2007-04-01 |
| 154 | 2007-05-01 |
| 154 | 2007-06-01 |
| 154 | 2007-07-01 |
| 154 | 2007-08-01 |
| 154 | 2007-09-01 |
| 154 | 2007-10-01 |
| 154 | 2007-11-01 |
| 154 | 2007-12-01 |
| 154 | 2008-01-01 |
| 154 | 2008-02-01 |
| 154 | 2008-03-01 |
| 154 | 2008-04-01 |
| 154 | 2008-05-01 |
| 154 | 2008-06-01 |
| 154 | 2008-07-01 |
| 154 | 2008-08-01 |
| 155 | 2004-03-01 |
| 155 | 2004-04-01 |
| 155 | 2004-05-01 |
| 155 | 2004-06-01 |
| 155 | 2004-07-01 |
| 155 | 2004-08-01 |
| 155 | 2004-09-01 |
| 155 | 2004-10-01 |
| 155 | 2004-11-01 |
| 155 | 2004-12-01 |
| 155 | 2005-01-01 |
| 155 | 2005-02-01 |
| 155 | 2005-03-01 |
| 155 | 2005-04-01 |
| 155 | 2005-05-01 |
| 155 | 2005-06-01 |
| 155 | 2005-07-01 |
| 155 | 2005-08-01 |
| 155 | 2005-09-01 |
| 155 | 2005-10-01 |
| 155 | 2005-11-01 |
| 155 | 2005-12-01 |
| 155 | 2006-01-01 |
| 155 | 2006-02-01 |
| 155 | 2006-03-01 |
| 155 | 2006-04-01 |
| 155 | 2006-05-01 |
| 155 | 2006-06-01 |
| 155 | 2006-07-01 |
| 155 | 2006-08-01 |
| 155 | 2006-09-01 |
| 155 | 2006-10-01 |
| 155 | 2006-11-01 |
| 155 | 2006-12-01 |
| 155 | 2007-01-01 |
| 155 | 2007-02-01 |
| 155 | 2007-03-01 |
| 155 | 2007-04-01 |
| 155 | 2007-05-01 |
| 155 | 2007-06-01 |
| 155 | 2007-07-01 |
| 155 | 2007-08-01 |
| 155 | 2007-09-01 |
| 155 | 2007-10-01 |
| 155 | 2007-11-01 |
| 155 | 2007-12-01 |
| 155 | 2008-01-01 |
| 155 | 2008-02-01 |
| 155 | 2008-03-01 |
| 155 | 2008-04-01 |
| 155 | 2008-05-01 |
| 155 | 2008-06-01 |
| 155 | 2008-07-01 |
| 155 | 2008-08-01 |
| 156 | 2004-03-01 |
| 156 | 2004-04-01 |
| 156 | 2004-05-01 |
| 156 | 2004-06-01 |
| 156 | 2004-07-01 |
| 156 | 2004-08-01 |
| 156 | 2004-09-01 |
| 156 | 2004-10-01 |
| 156 | 2004-11-01 |
| 156 | 2004-12-01 |
| 156 | 2005-01-01 |
| 156 | 2005-02-01 |
| 156 | 2005-03-01 |
| 156 | 2005-04-01 |
| 156 | 2005-05-01 |
| 156 | 2005-06-01 |
| 156 | 2005-07-01 |
| 156 | 2005-08-01 |
| 156 | 2005-09-01 |
| 156 | 2005-10-01 |
| 156 | 2005-11-01 |
| 156 | 2005-12-01 |
| 156 | 2006-01-01 |
| 156 | 2006-02-01 |
| 156 | 2006-03-01 |
| 156 | 2006-04-01 |
| 156 | 2006-05-01 |
| 156 | 2006-06-01 |
| 156 | 2006-07-01 |
| 156 | 2006-08-01 |
| 156 | 2006-09-01 |
| 156 | 2006-10-01 |
| 156 | 2006-11-01 |
| 156 | 2006-12-01 |
| 156 | 2007-01-01 |
| 156 | 2007-02-01 |
| 156 | 2007-03-01 |
| 156 | 2007-04-01 |
| 156 | 2007-05-01 |
| 156 | 2007-06-01 |
| 156 | 2007-07-01 |
| 156 | 2007-08-01 |
| 156 | 2007-09-01 |
| 156 | 2007-10-01 |
| 156 | 2007-11-01 |
| 156 | 2007-12-01 |
| 156 | 2008-01-01 |
| 156 | 2008-02-01 |
| 156 | 2008-03-01 |
| 156 | 2008-04-01 |
| 156 | 2008-05-01 |
| 156 | 2008-06-01 |
| 156 | 2008-07-01 |
| 156 | 2008-08-01 |
| 158 | 2004-03-01 |
| 158 | 2004-04-01 |
| 158 | 2004-05-01 |
| 158 | 2004-06-01 |
| 158 | 2004-07-01 |
| 158 | 2004-08-01 |
| 158 | 2004-09-01 |
| 158 | 2004-10-01 |
| 158 | 2004-11-01 |
| 158 | 2004-12-01 |
| 158 | 2005-01-01 |
| 158 | 2005-02-01 |
| 158 | 2005-03-01 |
| 158 | 2005-04-01 |
| 158 | 2005-05-01 |
| 158 | 2005-06-01 |
| 158 | 2005-07-01 |
| 158 | 2005-08-01 |
| 158 | 2005-09-01 |
| 158 | 2005-10-01 |
| 158 | 2005-11-01 |
| 158 | 2005-12-01 |
| 158 | 2006-01-01 |
| 158 | 2006-02-01 |
| 158 | 2006-03-01 |
| 158 | 2006-04-01 |
| 158 | 2006-05-01 |
| 158 | 2006-06-01 |
| 158 | 2006-07-01 |
| 158 | 2006-08-01 |
| 158 | 2006-09-01 |
| 158 | 2006-10-01 |
| 158 | 2006-11-01 |
| 158 | 2006-12-01 |
| 158 | 2007-01-01 |
| 158 | 2007-02-01 |
| 158 | 2007-03-01 |
| 158 | 2007-04-01 |
| 158 | 2007-05-01 |
| 158 | 2007-06-01 |
| 158 | 2007-07-01 |
| 158 | 2007-08-01 |
| 158 | 2007-09-01 |
| 158 | 2007-10-01 |
| 158 | 2007-11-01 |
| 158 | 2007-12-01 |
| 158 | 2008-01-01 |
| 158 | 2008-02-01 |
| 158 | 2008-03-01 |
| 158 | 2008-04-01 |
| 158 | 2008-05-01 |
| 158 | 2008-06-01 |
| 158 | 2008-07-01 |
| 158 | 2008-08-01 |
| 159 | 2004-03-01 |
| 159 | 2004-04-01 |
| 159 | 2004-05-01 |
| 159 | 2004-06-01 |
| 159 | 2004-07-01 |
| 159 | 2004-08-01 |
| 159 | 2004-09-01 |
| 159 | 2004-10-01 |
| 159 | 2004-11-01 |
| 159 | 2004-12-01 |
| 159 | 2005-01-01 |
| 159 | 2005-02-01 |
| 159 | 2005-03-01 |
| 159 | 2005-04-01 |
| 159 | 2005-05-01 |
| 159 | 2005-06-01 |
| 159 | 2005-07-01 |
| 159 | 2005-08-01 |
| 159 | 2005-09-01 |
| 159 | 2005-10-01 |
| 159 | 2005-11-01 |
| 159 | 2005-12-01 |
| 159 | 2006-01-01 |
| 159 | 2006-02-01 |
| 159 | 2006-03-01 |
| 159 | 2006-04-01 |
| 159 | 2006-05-01 |
| 159 | 2006-06-01 |
| 159 | 2006-07-01 |
| 159 | 2006-08-01 |
| 159 | 2006-09-01 |
| 159 | 2006-10-01 |
| 159 | 2006-11-01 |
| 159 | 2006-12-01 |
| 159 | 2007-01-01 |
| 159 | 2007-02-01 |
| 159 | 2007-03-01 |
| 159 | 2007-04-01 |
| 159 | 2007-05-01 |
| 159 | 2007-06-01 |
| 159 | 2007-07-01 |
| 159 | 2007-08-01 |
| 159 | 2007-09-01 |
| 159 | 2007-10-01 |
| 159 | 2007-11-01 |
| 159 | 2007-12-01 |
| 159 | 2008-01-01 |
| 159 | 2008-02-01 |
| 159 | 2008-03-01 |
| 159 | 2008-04-01 |
| 159 | 2008-05-01 |
| 159 | 2008-06-01 |
| 159 | 2008-07-01 |
| 159 | 2008-08-01 |
| 160 | 2004-03-01 |
| 160 | 2004-04-01 |
| 160 | 2004-05-01 |
| 160 | 2004-06-01 |
| 160 | 2004-07-01 |
| 160 | 2004-08-01 |
| 160 | 2004-09-01 |
| 160 | 2004-10-01 |
| 160 | 2004-11-01 |
| 160 | 2004-12-01 |
| 160 | 2005-01-01 |
| 160 | 2005-02-01 |
| 160 | 2005-03-01 |
| 160 | 2005-04-01 |
| 160 | 2005-05-01 |
| 160 | 2005-06-01 |
| 160 | 2005-07-01 |
| 160 | 2005-08-01 |
| 160 | 2005-09-01 |
| 160 | 2005-10-01 |
| 160 | 2005-11-01 |
| 160 | 2005-12-01 |
| 160 | 2006-01-01 |
| 160 | 2006-02-01 |
| 160 | 2006-03-01 |
| 160 | 2006-04-01 |
| 160 | 2006-05-01 |
| 160 | 2006-06-01 |
| 160 | 2006-07-01 |
| 160 | 2006-08-01 |
| 160 | 2006-09-01 |
| 160 | 2006-10-01 |
| 160 | 2006-11-01 |
| 160 | 2006-12-01 |
| 160 | 2007-01-01 |
| 160 | 2007-02-01 |
| 160 | 2007-03-01 |
| 160 | 2007-04-01 |
| 160 | 2007-05-01 |
| 160 | 2007-06-01 |
| 160 | 2007-07-01 |
| 160 | 2007-08-01 |
| 160 | 2007-09-01 |
| 160 | 2007-10-01 |
| 160 | 2007-11-01 |
| 160 | 2007-12-01 |
| 160 | 2008-01-01 |
| 160 | 2008-02-01 |
| 160 | 2008-03-01 |
| 160 | 2008-04-01 |
| 160 | 2008-05-01 |
| 160 | 2008-06-01 |
| 160 | 2008-07-01 |
| 160 | 2008-08-01 |
| 161 | 2004-03-01 |
| 161 | 2004-04-01 |
| 161 | 2004-05-01 |
| 161 | 2004-06-01 |
| 161 | 2004-07-01 |
| 161 | 2004-08-01 |
| 161 | 2004-09-01 |
| 161 | 2004-10-01 |
| 161 | 2004-11-01 |
| 161 | 2004-12-01 |
| 161 | 2005-01-01 |
| 161 | 2005-02-01 |
| 161 | 2005-03-01 |
| 161 | 2005-04-01 |
| 161 | 2005-05-01 |
| 161 | 2005-06-01 |
| 161 | 2005-07-01 |
| 161 | 2005-08-01 |
| 161 | 2005-09-01 |
| 161 | 2005-10-01 |
| 161 | 2005-11-01 |
| 161 | 2005-12-01 |
| 161 | 2006-01-01 |
| 161 | 2006-02-01 |
| 161 | 2006-03-01 |
| 161 | 2006-04-01 |
| 161 | 2006-05-01 |
| 161 | 2006-06-01 |
| 161 | 2006-07-01 |
| 161 | 2006-08-01 |
| 161 | 2006-09-01 |
| 161 | 2006-10-01 |
| 161 | 2006-11-01 |
| 161 | 2006-12-01 |
| 161 | 2007-01-01 |
| 161 | 2007-02-01 |
| 161 | 2007-03-01 |
| 161 | 2007-04-01 |
| 161 | 2007-05-01 |
| 161 | 2007-06-01 |
| 161 | 2007-07-01 |
| 161 | 2007-08-01 |
| 161 | 2007-09-01 |
| 161 | 2007-10-01 |
| 161 | 2007-11-01 |
| 161 | 2007-12-01 |
| 161 | 2008-01-01 |
| 161 | 2008-02-01 |
| 161 | 2008-03-01 |
| 161 | 2008-04-01 |
| 161 | 2008-05-01 |
| 161 | 2008-06-01 |
| 161 | 2008-07-01 |
| 161 | 2008-08-01 |
| 163 | 2004-03-01 |
| 163 | 2004-04-01 |
| 163 | 2004-05-01 |
| 163 | 2004-06-01 |
| 163 | 2004-07-01 |
| 163 | 2004-08-01 |
| 163 | 2004-09-01 |
| 163 | 2004-10-01 |
| 163 | 2004-11-01 |
| 163 | 2004-12-01 |
| 163 | 2005-01-01 |
| 163 | 2005-02-01 |
| 163 | 2005-03-01 |
| 163 | 2005-04-01 |
| 163 | 2005-05-01 |
| 163 | 2005-06-01 |
| 163 | 2005-07-01 |
| 163 | 2005-08-01 |
| 163 | 2005-09-01 |
| 163 | 2005-10-01 |
| 163 | 2005-11-01 |
| 163 | 2005-12-01 |
| 163 | 2006-01-01 |
| 163 | 2006-02-01 |
| 163 | 2006-03-01 |
| 163 | 2006-04-01 |
| 163 | 2006-05-01 |
| 163 | 2006-06-01 |
| 163 | 2006-07-01 |
| 163 | 2006-08-01 |
| 163 | 2006-09-01 |
| 163 | 2006-10-01 |
| 163 | 2006-11-01 |
| 163 | 2006-12-01 |
| 163 | 2007-01-01 |
| 163 | 2007-02-01 |
| 163 | 2007-03-01 |
| 163 | 2007-04-01 |
| 163 | 2007-05-01 |
| 163 | 2007-06-01 |
| 163 | 2007-07-01 |
| 163 | 2007-08-01 |
| 163 | 2007-09-01 |
| 163 | 2007-10-01 |
| 163 | 2007-11-01 |
| 163 | 2007-12-01 |
| 163 | 2008-01-01 |
| 163 | 2008-02-01 |
| 163 | 2008-03-01 |
| 163 | 2008-04-01 |
| 163 | 2008-05-01 |
| 163 | 2008-06-01 |
| 163 | 2008-07-01 |
| 163 | 2008-08-01 |
In the result set above, there exists 486 rows. Why? There are nine sales representatives and 54 months between March 2004 and August 2008. In other words, one row per sales representative and reporting month combination. We’ll use this output as a template where the existing sales data for each sales representative will be populated. Before we can do that, we must first develop a query to capture this data for each sales representative.
Capturing Monthly Sales Data
Below is the query we’ll use to gather the number of orders, product quantities, and sales totals corresponding to each sales representative and order month.
WITH monthly_sales_summary AS (
SELECT
oe.orders.sales_rep_id,
TRUNC(oe.orders.order_date, 'MONTH') AS order_month,
COUNT(DISTINCT oe.orders.order_id) AS order_count,
SUM(oe.order_items.quantity) AS quantity_total,
SUM(oe.order_items.quantity * oe.order_items.unit_price) AS sales_total
FROM
oe.orders
INNER JOIN
oe.order_items
ON oe.orders.order_id = oe.order_items.order_id
AND oe.orders.sales_rep_id IS NOT NULL
GROUP BY
oe.orders.sales_rep_id,
TRUNC(oe.orders.order_date, 'MONTH')
)
SELECT
monthly_sales_summary.sales_rep_id,
monthly_sales_summary.order_month,
monthly_sales_summary.order_count,
monthly_sales_summary.quantity_total,
monthly_sales_summary.sales_total
FROM
monthly_sales_summary;
| sales_rep_id | order_month | order_count | quantity_total | sales_total |
|---|---|---|---|---|
| 163 | 2007-07-01 | 1 | 7 | 969.2 |
| 155 | 2007-07-01 | 1 | 1116 | 77727.2 |
| 161 | 2008-07-01 | 1 | 291 | 33893.6 |
| 161 | 2007-05-01 | 1 | 198 | 17848.2 |
| 163 | 2006-11-01 | 2 | 33 | 5379.2 |
| 160 | 2008-08-01 | 1 | 16 | 2075.2 |
| 163 | 2007-03-01 | 1 | 46 | 1926.6 |
| 154 | 2007-06-01 | 1 | 8 | 48 |
| 158 | 2007-06-01 | 2 | 73 | 1697 |
| 156 | 2007-05-01 | 1 | 152 | 15760.5 |
| 161 | 2008-02-01 | 1 | 138 | 23431.9 |
| 161 | 2007-06-01 | 1 | 59 | 2854.2 |
| 160 | 2007-11-01 | 1 | 108 | 10367.7 |
| 154 | 2007-10-01 | 1 | 182 | 6653.4 |
| 155 | 2008-01-01 | 1 | 52 | 7826 |
| 163 | 2006-09-01 | 2 | 138 | 19160.6 |
| 159 | 2007-08-01 | 1 | 35 | 22150.1 |
| 153 | 2007-10-01 | 1 | 3 | 129 |
| 153 | 2007-08-01 | 1 | 752 | 78279.6 |
| 156 | 2006-02-01 | 1 | 81 | 48070.6 |
| 153 | 2007-11-01 | 1 | 32 | 13824 |
| 154 | 2007-07-01 | 2 | 13 | 820 |
| 163 | 2006-02-01 | 1 | 313 | 68501 |
| 160 | 2007-03-01 | 3 | 1042 | 61708 |
| 158 | 2006-01-01 | 1 | 361 | 59872.4 |
| 159 | 2007-10-01 | 3 | 556 | 63845.1 |
| 154 | 2006-07-01 | 2 | 346 | 56117.9 |
| 161 | 2007-07-01 | 3 | 842 | 199597.7 |
| 153 | 2007-03-01 | 1 | 100 | 10794.6 |
| 161 | 2007-11-01 | 1 | 351 | 25270.3 |
| 154 | 2007-11-01 | 2 | 711 | 92408.2 |
| 158 | 2006-03-01 | 1 | 798 | 66816 |
| 161 | 2007-09-01 | 2 | 723 | 275046.6 |
| 163 | 2004-03-01 | 1 | 128 | 5546.6 |
| 155 | 2008-07-01 | 1 | 769 | 46257 |
| 159 | 2007-04-01 | 1 | 53 | 1636 |
| 159 | 2007-07-01 | 1 | 9 | 1233 |
| 156 | 2008-05-01 | 2 | 536 | 68209.6 |
| 158 | 2008-02-01 | 1 | 473 | 21863 |
| 156 | 2007-08-01 | 1 | 162 | 70576.9 |
| 154 | 2007-12-01 | 1 | 31 | 10474.6 |
| 155 | 2007-06-01 | 2 | 46 | 2605 |
| 163 | 2007-09-01 | 2 | 27 | 10601 |
| 159 | 2007-09-01 | 1 | 159 | 62303 |
| 153 | 2007-12-01 | 1 | 176 | 11188.5 |
| 161 | 2006-03-01 | 1 | 5 | 310 |
| 154 | 2007-09-01 | 1 | 6 | 5451 |
| 160 | 2007-09-01 | 1 | 89 | 14087.5 |
| 158 | 2006-07-01 | 1 | 112 | 5537.8 |
| 163 | 2007-11-01 | 2 | 127 | 16165.3 |
| 161 | 2006-02-01 | 1 | 771 | 34930 |
| 158 | 2007-07-01 | 1 | 43 | 510 |
| 161 | 2008-03-01 | 1 | 501 | 48552 |
Combining the Partial Solutions
Neither of the two queries above independently address management’s reporting requirements. We’ll need to combine the two queries by utilizing a LEFT JOIN. The result of the LEFT JOIN operation with the monthly_sales_template on the left and monthly_sales_summary on the right, is still one row per sales representative and reporting month combination; however, within those reporting months the monthly sales data for the corresponding sales representative is populated.
WITH calendar (reporting_month) AS (
SELECT
TRUNC(MIN(oe.orders.order_date), 'MONTH')
FROM
oe.orders
UNION ALL
SELECT
ADD_MONTHS(calendar.reporting_month, 1)
FROM
calendar
WHERE
calendar.reporting_month < (
SELECT
TRUNC(MAX(oe.orders.order_date), 'MONTH')
FROM
oe.orders
)
),
sales_representative AS (
SELECT
DISTINCT oe.orders.sales_rep_id
FROM
oe.orders
WHERE
oe.orders.sales_rep_id IS NOT NULL
),
monthly_sales_template AS (
SELECT
sales_representative.sales_rep_id,
calendar.reporting_month
FROM
calendar
CROSS JOIN
sales_representative
),
monthly_sales_summary AS (
SELECT
oe.orders.sales_rep_id,
TRUNC(oe.orders.order_date, 'MONTH') AS order_month,
COUNT(DISTINCT oe.orders.sales_rep_id) AS order_count,
SUM(oe.order_items.quantity) AS quantity_total,
SUM(oe.order_items.quantity * oe.order_items.unit_price) AS sales_total
FROM
oe.orders
INNER JOIN
oe.order_items
ON oe.orders.order_id = oe.order_items.order_id
AND oe.orders.sales_rep_id IS NOT NULL
GROUP BY
oe.orders.sales_rep_id,
TRUNC(oe.orders.order_date, 'MONTH')
)
SELECT
monthly_sales_template.sales_rep_id,
monthly_sales_template.reporting_month,
COALESCE(monthly_sales_summary.order_count, 0) AS order_count,
COALESCE(monthly_sales_summary.quantity_total, 0) AS quantity_total,
COALESCE(monthly_sales_summary.sales_total, 0) AS sales_total
FROM
monthly_sales_template
LEFT JOIN
monthly_sales_summary
ON monthly_sales_template.sales_rep_id = monthly_sales_summary.sales_rep_id
AND monthly_sales_template.reporting_month = monthly_sales_summary.order_month
ORDER BY
monthly_sales_template.sales_rep_id,
monthly_sales_template.reporting_month;
| sales_rep_id | reporting_month | order_count | quantity_total | sales_total |
|---|---|---|---|---|
| 153 | 2004-03-01 | 0 | 0 | 0 |
| 153 | 2004-04-01 | 0 | 0 | 0 |
| 153 | 2004-05-01 | 0 | 0 | 0 |
| 153 | 2004-06-01 | 0 | 0 | 0 |
| 153 | 2004-07-01 | 0 | 0 | 0 |
| 153 | 2004-08-01 | 0 | 0 | 0 |
| 153 | 2004-09-01 | 0 | 0 | 0 |
| 153 | 2004-10-01 | 0 | 0 | 0 |
| 153 | 2004-11-01 | 0 | 0 | 0 |
| 153 | 2004-12-01 | 0 | 0 | 0 |
| 153 | 2005-01-01 | 0 | 0 | 0 |
| 153 | 2005-02-01 | 0 | 0 | 0 |
| 153 | 2005-03-01 | 0 | 0 | 0 |
| 153 | 2005-04-01 | 0 | 0 | 0 |
| 153 | 2005-05-01 | 0 | 0 | 0 |
| 153 | 2005-06-01 | 0 | 0 | 0 |
| 153 | 2005-07-01 | 0 | 0 | 0 |
| 153 | 2005-08-01 | 0 | 0 | 0 |
| 153 | 2005-09-01 | 0 | 0 | 0 |
| 153 | 2005-10-01 | 0 | 0 | 0 |
| 153 | 2005-11-01 | 0 | 0 | 0 |
| 153 | 2005-12-01 | 0 | 0 | 0 |
| 153 | 2006-01-01 | 0 | 0 | 0 |
| 153 | 2006-02-01 | 0 | 0 | 0 |
| 153 | 2006-03-01 | 0 | 0 | 0 |
| 153 | 2006-04-01 | 0 | 0 | 0 |
| 153 | 2006-05-01 | 0 | 0 | 0 |
| 153 | 2006-06-01 | 0 | 0 | 0 |
| 153 | 2006-07-01 | 0 | 0 | 0 |
| 153 | 2006-08-01 | 0 | 0 | 0 |
| 153 | 2006-09-01 | 0 | 0 | 0 |
| 153 | 2006-10-01 | 0 | 0 | 0 |
| 153 | 2006-11-01 | 0 | 0 | 0 |
| 153 | 2006-12-01 | 0 | 0 | 0 |
| 153 | 2007-01-01 | 0 | 0 | 0 |
| 153 | 2007-02-01 | 0 | 0 | 0 |
| 153 | 2007-03-01 | 1 | 100 | 10794.6 |
| 153 | 2007-04-01 | 0 | 0 | 0 |
| 153 | 2007-05-01 | 0 | 0 | 0 |
| 153 | 2007-06-01 | 0 | 0 | 0 |
| 153 | 2007-07-01 | 0 | 0 | 0 |
| 153 | 2007-08-01 | 1 | 752 | 78279.6 |
| 153 | 2007-09-01 | 0 | 0 | 0 |
| 153 | 2007-10-01 | 1 | 3 | 129 |
| 153 | 2007-11-01 | 1 | 32 | 13824 |
| 153 | 2007-12-01 | 1 | 176 | 11188.5 |
| 153 | 2008-01-01 | 0 | 0 | 0 |
| 153 | 2008-02-01 | 0 | 0 | 0 |
| 153 | 2008-03-01 | 0 | 0 | 0 |
| 153 | 2008-04-01 | 0 | 0 | 0 |
| 153 | 2008-05-01 | 0 | 0 | 0 |
| 153 | 2008-06-01 | 0 | 0 | 0 |
| 153 | 2008-07-01 | 0 | 0 | 0 |
| 153 | 2008-08-01 | 0 | 0 | 0 |
| 154 | 2004-03-01 | 0 | 0 | 0 |
| 154 | 2004-04-01 | 0 | 0 | 0 |
| 154 | 2004-05-01 | 0 | 0 | 0 |
| 154 | 2004-06-01 | 0 | 0 | 0 |
| 154 | 2004-07-01 | 0 | 0 | 0 |
| 154 | 2004-08-01 | 0 | 0 | 0 |
| 154 | 2004-09-01 | 0 | 0 | 0 |
| 154 | 2004-10-01 | 0 | 0 | 0 |
| 154 | 2004-11-01 | 0 | 0 | 0 |
| 154 | 2004-12-01 | 0 | 0 | 0 |
| 154 | 2005-01-01 | 0 | 0 | 0 |
| 154 | 2005-02-01 | 0 | 0 | 0 |
| 154 | 2005-03-01 | 0 | 0 | 0 |
| 154 | 2005-04-01 | 0 | 0 | 0 |
| 154 | 2005-05-01 | 0 | 0 | 0 |
| 154 | 2005-06-01 | 0 | 0 | 0 |
| 154 | 2005-07-01 | 0 | 0 | 0 |
| 154 | 2005-08-01 | 0 | 0 | 0 |
| 154 | 2005-09-01 | 0 | 0 | 0 |
| 154 | 2005-10-01 | 0 | 0 | 0 |
| 154 | 2005-11-01 | 0 | 0 | 0 |
| 154 | 2005-12-01 | 0 | 0 | 0 |
| 154 | 2006-01-01 | 0 | 0 | 0 |
| 154 | 2006-02-01 | 0 | 0 | 0 |
| 154 | 2006-03-01 | 0 | 0 | 0 |
| 154 | 2006-04-01 | 0 | 0 | 0 |
| 154 | 2006-05-01 | 0 | 0 | 0 |
| 154 | 2006-06-01 | 0 | 0 | 0 |
| 154 | 2006-07-01 | 1 | 346 | 56117.9 |
| 154 | 2006-08-01 | 0 | 0 | 0 |
| 154 | 2006-09-01 | 0 | 0 | 0 |
| 154 | 2006-10-01 | 0 | 0 | 0 |
| 154 | 2006-11-01 | 0 | 0 | 0 |
| 154 | 2006-12-01 | 0 | 0 | 0 |
| 154 | 2007-01-01 | 0 | 0 | 0 |
| 154 | 2007-02-01 | 0 | 0 | 0 |
| 154 | 2007-03-01 | 0 | 0 | 0 |
| 154 | 2007-04-01 | 0 | 0 | 0 |
| 154 | 2007-05-01 | 0 | 0 | 0 |
| 154 | 2007-06-01 | 1 | 8 | 48 |
| 154 | 2007-07-01 | 1 | 13 | 820 |
| 154 | 2007-08-01 | 0 | 0 | 0 |
| 154 | 2007-09-01 | 1 | 6 | 5451 |
| 154 | 2007-10-01 | 1 | 182 | 6653.4 |
| 154 | 2007-11-01 | 1 | 711 | 92408.2 |
| 154 | 2007-12-01 | 1 | 31 | 10474.6 |
| 154 | 2008-01-01 | 0 | 0 | 0 |
| 154 | 2008-02-01 | 0 | 0 | 0 |
| 154 | 2008-03-01 | 0 | 0 | 0 |
| 154 | 2008-04-01 | 0 | 0 | 0 |
| 154 | 2008-05-01 | 0 | 0 | 0 |
| 154 | 2008-06-01 | 0 | 0 | 0 |
| 154 | 2008-07-01 | 0 | 0 | 0 |
| 154 | 2008-08-01 | 0 | 0 | 0 |
| 155 | 2004-03-01 | 0 | 0 | 0 |
| 155 | 2004-04-01 | 0 | 0 | 0 |
| 155 | 2004-05-01 | 0 | 0 | 0 |
| 155 | 2004-06-01 | 0 | 0 | 0 |
| 155 | 2004-07-01 | 0 | 0 | 0 |
| 155 | 2004-08-01 | 0 | 0 | 0 |
| 155 | 2004-09-01 | 0 | 0 | 0 |
| 155 | 2004-10-01 | 0 | 0 | 0 |
| 155 | 2004-11-01 | 0 | 0 | 0 |
| 155 | 2004-12-01 | 0 | 0 | 0 |
| 155 | 2005-01-01 | 0 | 0 | 0 |
| 155 | 2005-02-01 | 0 | 0 | 0 |
| 155 | 2005-03-01 | 0 | 0 | 0 |
| 155 | 2005-04-01 | 0 | 0 | 0 |
| 155 | 2005-05-01 | 0 | 0 | 0 |
| 155 | 2005-06-01 | 0 | 0 | 0 |
| 155 | 2005-07-01 | 0 | 0 | 0 |
| 155 | 2005-08-01 | 0 | 0 | 0 |
| 155 | 2005-09-01 | 0 | 0 | 0 |
| 155 | 2005-10-01 | 0 | 0 | 0 |
| 155 | 2005-11-01 | 0 | 0 | 0 |
| 155 | 2005-12-01 | 0 | 0 | 0 |
| 155 | 2006-01-01 | 0 | 0 | 0 |
| 155 | 2006-02-01 | 0 | 0 | 0 |
| 155 | 2006-03-01 | 0 | 0 | 0 |
| 155 | 2006-04-01 | 0 | 0 | 0 |
| 155 | 2006-05-01 | 0 | 0 | 0 |
| 155 | 2006-06-01 | 0 | 0 | 0 |
| 155 | 2006-07-01 | 0 | 0 | 0 |
| 155 | 2006-08-01 | 0 | 0 | 0 |
| 155 | 2006-09-01 | 0 | 0 | 0 |
| 155 | 2006-10-01 | 0 | 0 | 0 |
| 155 | 2006-11-01 | 0 | 0 | 0 |
| 155 | 2006-12-01 | 0 | 0 | 0 |
| 155 | 2007-01-01 | 0 | 0 | 0 |
| 155 | 2007-02-01 | 0 | 0 | 0 |
| 155 | 2007-03-01 | 0 | 0 | 0 |
| 155 | 2007-04-01 | 0 | 0 | 0 |
| 155 | 2007-05-01 | 0 | 0 | 0 |
| 155 | 2007-06-01 | 1 | 46 | 2605 |
| 155 | 2007-07-01 | 1 | 1116 | 77727.2 |
| 155 | 2007-08-01 | 0 | 0 | 0 |
| 155 | 2007-09-01 | 0 | 0 | 0 |
| 155 | 2007-10-01 | 0 | 0 | 0 |
| 155 | 2007-11-01 | 0 | 0 | 0 |
| 155 | 2007-12-01 | 0 | 0 | 0 |
| 155 | 2008-01-01 | 1 | 52 | 7826 |
| 155 | 2008-02-01 | 0 | 0 | 0 |
| 155 | 2008-03-01 | 0 | 0 | 0 |
| 155 | 2008-04-01 | 0 | 0 | 0 |
| 155 | 2008-05-01 | 0 | 0 | 0 |
| 155 | 2008-06-01 | 0 | 0 | 0 |
| 155 | 2008-07-01 | 1 | 769 | 46257 |
| 155 | 2008-08-01 | 0 | 0 | 0 |
| 156 | 2004-03-01 | 0 | 0 | 0 |
| 156 | 2004-04-01 | 0 | 0 | 0 |
| 156 | 2004-05-01 | 0 | 0 | 0 |
| 156 | 2004-06-01 | 0 | 0 | 0 |
| 156 | 2004-07-01 | 0 | 0 | 0 |
| 156 | 2004-08-01 | 0 | 0 | 0 |
| 156 | 2004-09-01 | 0 | 0 | 0 |
| 156 | 2004-10-01 | 0 | 0 | 0 |
| 156 | 2004-11-01 | 0 | 0 | 0 |
| 156 | 2004-12-01 | 0 | 0 | 0 |
| 156 | 2005-01-01 | 0 | 0 | 0 |
| 156 | 2005-02-01 | 0 | 0 | 0 |
| 156 | 2005-03-01 | 0 | 0 | 0 |
| 156 | 2005-04-01 | 0 | 0 | 0 |
| 156 | 2005-05-01 | 0 | 0 | 0 |
| 156 | 2005-06-01 | 0 | 0 | 0 |
| 156 | 2005-07-01 | 0 | 0 | 0 |
| 156 | 2005-08-01 | 0 | 0 | 0 |
| 156 | 2005-09-01 | 0 | 0 | 0 |
| 156 | 2005-10-01 | 0 | 0 | 0 |
| 156 | 2005-11-01 | 0 | 0 | 0 |
| 156 | 2005-12-01 | 0 | 0 | 0 |
| 156 | 2006-01-01 | 0 | 0 | 0 |
| 156 | 2006-02-01 | 1 | 81 | 48070.6 |
| 156 | 2006-03-01 | 0 | 0 | 0 |
| 156 | 2006-04-01 | 0 | 0 | 0 |
| 156 | 2006-05-01 | 0 | 0 | 0 |
| 156 | 2006-06-01 | 0 | 0 | 0 |
| 156 | 2006-07-01 | 0 | 0 | 0 |
| 156 | 2006-08-01 | 0 | 0 | 0 |
| 156 | 2006-09-01 | 0 | 0 | 0 |
| 156 | 2006-10-01 | 0 | 0 | 0 |
| 156 | 2006-11-01 | 0 | 0 | 0 |
| 156 | 2006-12-01 | 0 | 0 | 0 |
| 156 | 2007-01-01 | 0 | 0 | 0 |
| 156 | 2007-02-01 | 0 | 0 | 0 |
| 156 | 2007-03-01 | 0 | 0 | 0 |
| 156 | 2007-04-01 | 0 | 0 | 0 |
| 156 | 2007-05-01 | 1 | 152 | 15760.5 |
| 156 | 2007-06-01 | 0 | 0 | 0 |
| 156 | 2007-07-01 | 0 | 0 | 0 |
| 156 | 2007-08-01 | 1 | 162 | 70576.9 |
| 156 | 2007-09-01 | 0 | 0 | 0 |
| 156 | 2007-10-01 | 0 | 0 | 0 |
| 156 | 2007-11-01 | 0 | 0 | 0 |
| 156 | 2007-12-01 | 0 | 0 | 0 |
| 156 | 2008-01-01 | 0 | 0 | 0 |
| 156 | 2008-02-01 | 0 | 0 | 0 |
| 156 | 2008-03-01 | 0 | 0 | 0 |
| 156 | 2008-04-01 | 0 | 0 | 0 |
| 156 | 2008-05-01 | 1 | 536 | 68209.6 |
| 156 | 2008-06-01 | 0 | 0 | 0 |
| 156 | 2008-07-01 | 0 | 0 | 0 |
| 156 | 2008-08-01 | 0 | 0 | 0 |
| 158 | 2004-03-01 | 0 | 0 | 0 |
| 158 | 2004-04-01 | 0 | 0 | 0 |
| 158 | 2004-05-01 | 0 | 0 | 0 |
| 158 | 2004-06-01 | 0 | 0 | 0 |
| 158 | 2004-07-01 | 0 | 0 | 0 |
| 158 | 2004-08-01 | 0 | 0 | 0 |
| 158 | 2004-09-01 | 0 | 0 | 0 |
| 158 | 2004-10-01 | 0 | 0 | 0 |
| 158 | 2004-11-01 | 0 | 0 | 0 |
| 158 | 2004-12-01 | 0 | 0 | 0 |
| 158 | 2005-01-01 | 0 | 0 | 0 |
| 158 | 2005-02-01 | 0 | 0 | 0 |
| 158 | 2005-03-01 | 0 | 0 | 0 |
| 158 | 2005-04-01 | 0 | 0 | 0 |
| 158 | 2005-05-01 | 0 | 0 | 0 |
| 158 | 2005-06-01 | 0 | 0 | 0 |
| 158 | 2005-07-01 | 0 | 0 | 0 |
| 158 | 2005-08-01 | 0 | 0 | 0 |
| 158 | 2005-09-01 | 0 | 0 | 0 |
| 158 | 2005-10-01 | 0 | 0 | 0 |
| 158 | 2005-11-01 | 0 | 0 | 0 |
| 158 | 2005-12-01 | 0 | 0 | 0 |
| 158 | 2006-01-01 | 1 | 361 | 59872.4 |
| 158 | 2006-02-01 | 0 | 0 | 0 |
| 158 | 2006-03-01 | 1 | 798 | 66816 |
| 158 | 2006-04-01 | 0 | 0 | 0 |
| 158 | 2006-05-01 | 0 | 0 | 0 |
| 158 | 2006-06-01 | 0 | 0 | 0 |
| 158 | 2006-07-01 | 1 | 112 | 5537.8 |
| 158 | 2006-08-01 | 0 | 0 | 0 |
| 158 | 2006-09-01 | 0 | 0 | 0 |
| 158 | 2006-10-01 | 0 | 0 | 0 |
| 158 | 2006-11-01 | 0 | 0 | 0 |
| 158 | 2006-12-01 | 0 | 0 | 0 |
| 158 | 2007-01-01 | 0 | 0 | 0 |
| 158 | 2007-02-01 | 0 | 0 | 0 |
| 158 | 2007-03-01 | 0 | 0 | 0 |
| 158 | 2007-04-01 | 0 | 0 | 0 |
| 158 | 2007-05-01 | 0 | 0 | 0 |
| 158 | 2007-06-01 | 1 | 73 | 1697 |
| 158 | 2007-07-01 | 1 | 43 | 510 |
| 158 | 2007-08-01 | 0 | 0 | 0 |
| 158 | 2007-09-01 | 0 | 0 | 0 |
| 158 | 2007-10-01 | 0 | 0 | 0 |
| 158 | 2007-11-01 | 0 | 0 | 0 |
| 158 | 2007-12-01 | 0 | 0 | 0 |
| 158 | 2008-01-01 | 0 | 0 | 0 |
| 158 | 2008-02-01 | 1 | 473 | 21863 |
| 158 | 2008-03-01 | 0 | 0 | 0 |
| 158 | 2008-04-01 | 0 | 0 | 0 |
| 158 | 2008-05-01 | 0 | 0 | 0 |
| 158 | 2008-06-01 | 0 | 0 | 0 |
| 158 | 2008-07-01 | 0 | 0 | 0 |
| 158 | 2008-08-01 | 0 | 0 | 0 |
| 159 | 2004-03-01 | 0 | 0 | 0 |
| 159 | 2004-04-01 | 0 | 0 | 0 |
| 159 | 2004-05-01 | 0 | 0 | 0 |
| 159 | 2004-06-01 | 0 | 0 | 0 |
| 159 | 2004-07-01 | 0 | 0 | 0 |
| 159 | 2004-08-01 | 0 | 0 | 0 |
| 159 | 2004-09-01 | 0 | 0 | 0 |
| 159 | 2004-10-01 | 0 | 0 | 0 |
| 159 | 2004-11-01 | 0 | 0 | 0 |
| 159 | 2004-12-01 | 0 | 0 | 0 |
| 159 | 2005-01-01 | 0 | 0 | 0 |
| 159 | 2005-02-01 | 0 | 0 | 0 |
| 159 | 2005-03-01 | 0 | 0 | 0 |
| 159 | 2005-04-01 | 0 | 0 | 0 |
| 159 | 2005-05-01 | 0 | 0 | 0 |
| 159 | 2005-06-01 | 0 | 0 | 0 |
| 159 | 2005-07-01 | 0 | 0 | 0 |
| 159 | 2005-08-01 | 0 | 0 | 0 |
| 159 | 2005-09-01 | 0 | 0 | 0 |
| 159 | 2005-10-01 | 0 | 0 | 0 |
| 159 | 2005-11-01 | 0 | 0 | 0 |
| 159 | 2005-12-01 | 0 | 0 | 0 |
| 159 | 2006-01-01 | 0 | 0 | 0 |
| 159 | 2006-02-01 | 0 | 0 | 0 |
| 159 | 2006-03-01 | 0 | 0 | 0 |
| 159 | 2006-04-01 | 0 | 0 | 0 |
| 159 | 2006-05-01 | 0 | 0 | 0 |
| 159 | 2006-06-01 | 0 | 0 | 0 |
| 159 | 2006-07-01 | 0 | 0 | 0 |
| 159 | 2006-08-01 | 0 | 0 | 0 |
| 159 | 2006-09-01 | 0 | 0 | 0 |
| 159 | 2006-10-01 | 0 | 0 | 0 |
| 159 | 2006-11-01 | 0 | 0 | 0 |
| 159 | 2006-12-01 | 0 | 0 | 0 |
| 159 | 2007-01-01 | 0 | 0 | 0 |
| 159 | 2007-02-01 | 0 | 0 | 0 |
| 159 | 2007-03-01 | 0 | 0 | 0 |
| 159 | 2007-04-01 | 1 | 53 | 1636 |
| 159 | 2007-05-01 | 0 | 0 | 0 |
| 159 | 2007-06-01 | 0 | 0 | 0 |
| 159 | 2007-07-01 | 1 | 9 | 1233 |
| 159 | 2007-08-01 | 1 | 35 | 22150.1 |
| 159 | 2007-09-01 | 1 | 159 | 62303 |
| 159 | 2007-10-01 | 1 | 556 | 63845.1 |
| 159 | 2007-11-01 | 0 | 0 | 0 |
| 159 | 2007-12-01 | 0 | 0 | 0 |
| 159 | 2008-01-01 | 0 | 0 | 0 |
| 159 | 2008-02-01 | 0 | 0 | 0 |
| 159 | 2008-03-01 | 0 | 0 | 0 |
| 159 | 2008-04-01 | 0 | 0 | 0 |
| 159 | 2008-05-01 | 0 | 0 | 0 |
| 159 | 2008-06-01 | 0 | 0 | 0 |
| 159 | 2008-07-01 | 0 | 0 | 0 |
| 159 | 2008-08-01 | 0 | 0 | 0 |
| 160 | 2004-03-01 | 0 | 0 | 0 |
| 160 | 2004-04-01 | 0 | 0 | 0 |
| 160 | 2004-05-01 | 0 | 0 | 0 |
| 160 | 2004-06-01 | 0 | 0 | 0 |
| 160 | 2004-07-01 | 0 | 0 | 0 |
| 160 | 2004-08-01 | 0 | 0 | 0 |
| 160 | 2004-09-01 | 0 | 0 | 0 |
| 160 | 2004-10-01 | 0 | 0 | 0 |
| 160 | 2004-11-01 | 0 | 0 | 0 |
| 160 | 2004-12-01 | 0 | 0 | 0 |
| 160 | 2005-01-01 | 0 | 0 | 0 |
| 160 | 2005-02-01 | 0 | 0 | 0 |
| 160 | 2005-03-01 | 0 | 0 | 0 |
| 160 | 2005-04-01 | 0 | 0 | 0 |
| 160 | 2005-05-01 | 0 | 0 | 0 |
| 160 | 2005-06-01 | 0 | 0 | 0 |
| 160 | 2005-07-01 | 0 | 0 | 0 |
| 160 | 2005-08-01 | 0 | 0 | 0 |
| 160 | 2005-09-01 | 0 | 0 | 0 |
| 160 | 2005-10-01 | 0 | 0 | 0 |
| 160 | 2005-11-01 | 0 | 0 | 0 |
| 160 | 2005-12-01 | 0 | 0 | 0 |
| 160 | 2006-01-01 | 0 | 0 | 0 |
| 160 | 2006-02-01 | 0 | 0 | 0 |
| 160 | 2006-03-01 | 0 | 0 | 0 |
| 160 | 2006-04-01 | 0 | 0 | 0 |
| 160 | 2006-05-01 | 0 | 0 | 0 |
| 160 | 2006-06-01 | 0 | 0 | 0 |
| 160 | 2006-07-01 | 0 | 0 | 0 |
| 160 | 2006-08-01 | 0 | 0 | 0 |
| 160 | 2006-09-01 | 0 | 0 | 0 |
| 160 | 2006-10-01 | 0 | 0 | 0 |
| 160 | 2006-11-01 | 0 | 0 | 0 |
| 160 | 2006-12-01 | 0 | 0 | 0 |
| 160 | 2007-01-01 | 0 | 0 | 0 |
| 160 | 2007-02-01 | 0 | 0 | 0 |
| 160 | 2007-03-01 | 1 | 1042 | 61708 |
| 160 | 2007-04-01 | 0 | 0 | 0 |
| 160 | 2007-05-01 | 0 | 0 | 0 |
| 160 | 2007-06-01 | 0 | 0 | 0 |
| 160 | 2007-07-01 | 0 | 0 | 0 |
| 160 | 2007-08-01 | 0 | 0 | 0 |
| 160 | 2007-09-01 | 1 | 89 | 14087.5 |
| 160 | 2007-10-01 | 0 | 0 | 0 |
| 160 | 2007-11-01 | 1 | 108 | 10367.7 |
| 160 | 2007-12-01 | 0 | 0 | 0 |
| 160 | 2008-01-01 | 0 | 0 | 0 |
| 160 | 2008-02-01 | 0 | 0 | 0 |
| 160 | 2008-03-01 | 0 | 0 | 0 |
| 160 | 2008-04-01 | 0 | 0 | 0 |
| 160 | 2008-05-01 | 0 | 0 | 0 |
| 160 | 2008-06-01 | 0 | 0 | 0 |
| 160 | 2008-07-01 | 0 | 0 | 0 |
| 160 | 2008-08-01 | 1 | 16 | 2075.2 |
| 161 | 2004-03-01 | 0 | 0 | 0 |
| 161 | 2004-04-01 | 0 | 0 | 0 |
| 161 | 2004-05-01 | 0 | 0 | 0 |
| 161 | 2004-06-01 | 0 | 0 | 0 |
| 161 | 2004-07-01 | 0 | 0 | 0 |
| 161 | 2004-08-01 | 0 | 0 | 0 |
| 161 | 2004-09-01 | 0 | 0 | 0 |
| 161 | 2004-10-01 | 0 | 0 | 0 |
| 161 | 2004-11-01 | 0 | 0 | 0 |
| 161 | 2004-12-01 | 0 | 0 | 0 |
| 161 | 2005-01-01 | 0 | 0 | 0 |
| 161 | 2005-02-01 | 0 | 0 | 0 |
| 161 | 2005-03-01 | 0 | 0 | 0 |
| 161 | 2005-04-01 | 0 | 0 | 0 |
| 161 | 2005-05-01 | 0 | 0 | 0 |
| 161 | 2005-06-01 | 0 | 0 | 0 |
| 161 | 2005-07-01 | 0 | 0 | 0 |
| 161 | 2005-08-01 | 0 | 0 | 0 |
| 161 | 2005-09-01 | 0 | 0 | 0 |
| 161 | 2005-10-01 | 0 | 0 | 0 |
| 161 | 2005-11-01 | 0 | 0 | 0 |
| 161 | 2005-12-01 | 0 | 0 | 0 |
| 161 | 2006-01-01 | 0 | 0 | 0 |
| 161 | 2006-02-01 | 1 | 771 | 34930 |
| 161 | 2006-03-01 | 1 | 5 | 310 |
| 161 | 2006-04-01 | 0 | 0 | 0 |
| 161 | 2006-05-01 | 0 | 0 | 0 |
| 161 | 2006-06-01 | 0 | 0 | 0 |
| 161 | 2006-07-01 | 0 | 0 | 0 |
| 161 | 2006-08-01 | 0 | 0 | 0 |
| 161 | 2006-09-01 | 0 | 0 | 0 |
| 161 | 2006-10-01 | 0 | 0 | 0 |
| 161 | 2006-11-01 | 0 | 0 | 0 |
| 161 | 2006-12-01 | 0 | 0 | 0 |
| 161 | 2007-01-01 | 0 | 0 | 0 |
| 161 | 2007-02-01 | 0 | 0 | 0 |
| 161 | 2007-03-01 | 0 | 0 | 0 |
| 161 | 2007-04-01 | 0 | 0 | 0 |
| 161 | 2007-05-01 | 1 | 198 | 17848.2 |
| 161 | 2007-06-01 | 1 | 59 | 2854.2 |
| 161 | 2007-07-01 | 1 | 842 | 199597.7 |
| 161 | 2007-08-01 | 0 | 0 | 0 |
| 161 | 2007-09-01 | 1 | 723 | 275046.6 |
| 161 | 2007-10-01 | 0 | 0 | 0 |
| 161 | 2007-11-01 | 1 | 351 | 25270.3 |
| 161 | 2007-12-01 | 0 | 0 | 0 |
| 161 | 2008-01-01 | 0 | 0 | 0 |
| 161 | 2008-02-01 | 1 | 138 | 23431.9 |
| 161 | 2008-03-01 | 1 | 501 | 48552 |
| 161 | 2008-04-01 | 0 | 0 | 0 |
| 161 | 2008-05-01 | 0 | 0 | 0 |
| 161 | 2008-06-01 | 0 | 0 | 0 |
| 161 | 2008-07-01 | 1 | 291 | 33893.6 |
| 161 | 2008-08-01 | 0 | 0 | 0 |
| 163 | 2004-03-01 | 1 | 128 | 5546.6 |
| 163 | 2004-04-01 | 0 | 0 | 0 |
| 163 | 2004-05-01 | 0 | 0 | 0 |
| 163 | 2004-06-01 | 0 | 0 | 0 |
| 163 | 2004-07-01 | 0 | 0 | 0 |
| 163 | 2004-08-01 | 0 | 0 | 0 |
| 163 | 2004-09-01 | 0 | 0 | 0 |
| 163 | 2004-10-01 | 0 | 0 | 0 |
| 163 | 2004-11-01 | 0 | 0 | 0 |
| 163 | 2004-12-01 | 0 | 0 | 0 |
| 163 | 2005-01-01 | 0 | 0 | 0 |
| 163 | 2005-02-01 | 0 | 0 | 0 |
| 163 | 2005-03-01 | 0 | 0 | 0 |
| 163 | 2005-04-01 | 0 | 0 | 0 |
| 163 | 2005-05-01 | 0 | 0 | 0 |
| 163 | 2005-06-01 | 0 | 0 | 0 |
| 163 | 2005-07-01 | 0 | 0 | 0 |
| 163 | 2005-08-01 | 0 | 0 | 0 |
| 163 | 2005-09-01 | 0 | 0 | 0 |
| 163 | 2005-10-01 | 0 | 0 | 0 |
| 163 | 2005-11-01 | 0 | 0 | 0 |
| 163 | 2005-12-01 | 0 | 0 | 0 |
| 163 | 2006-01-01 | 0 | 0 | 0 |
| 163 | 2006-02-01 | 1 | 313 | 68501 |
| 163 | 2006-03-01 | 0 | 0 | 0 |
| 163 | 2006-04-01 | 0 | 0 | 0 |
| 163 | 2006-05-01 | 0 | 0 | 0 |
| 163 | 2006-06-01 | 0 | 0 | 0 |
| 163 | 2006-07-01 | 0 | 0 | 0 |
| 163 | 2006-08-01 | 0 | 0 | 0 |
| 163 | 2006-09-01 | 1 | 138 | 19160.6 |
| 163 | 2006-10-01 | 0 | 0 | 0 |
| 163 | 2006-11-01 | 1 | 33 | 5379.2 |
| 163 | 2006-12-01 | 0 | 0 | 0 |
| 163 | 2007-01-01 | 0 | 0 | 0 |
| 163 | 2007-02-01 | 0 | 0 | 0 |
| 163 | 2007-03-01 | 1 | 46 | 1926.6 |
| 163 | 2007-04-01 | 0 | 0 | 0 |
| 163 | 2007-05-01 | 0 | 0 | 0 |
| 163 | 2007-06-01 | 0 | 0 | 0 |
| 163 | 2007-07-01 | 1 | 7 | 969.2 |
| 163 | 2007-08-01 | 0 | 0 | 0 |
| 163 | 2007-09-01 | 1 | 27 | 10601 |
| 163 | 2007-10-01 | 0 | 0 | 0 |
| 163 | 2007-11-01 | 1 | 127 | 16165.3 |
| 163 | 2007-12-01 | 0 | 0 | 0 |
| 163 | 2008-01-01 | 0 | 0 | 0 |
| 163 | 2008-02-01 | 0 | 0 | 0 |
| 163 | 2008-03-01 | 0 | 0 | 0 |
| 163 | 2008-04-01 | 0 | 0 | 0 |
| 163 | 2008-05-01 | 0 | 0 | 0 |
| 163 | 2008-06-01 | 0 | 0 | 0 |
| 163 | 2008-07-01 | 0 | 0 | 0 |
| 163 | 2008-08-01 | 0 | 0 | 0 |
You’ll notice in months where the sales representative didn’t participate in any customer order submissions, I’ve decided to populate those row’s sales data with zeros using the COALESCE function. This is personal preference but may prove convenient if the data is plotted on a graph. Additionally, I’ve ordered the result set by sales representative and reporting month, allowing each representative’s performance to be viewed more easily when the focus is on a single sales representative.
With the output above, we’ve successfully met management’s reporting requirements. While the CROSS JOIN alone didn’t solve our problem, it played a key role by generating the monthly sales template required in subsequent steps.
Knowledge Check
If you’d like to confirm your understanding on JOINS and other fundamental concepts, consider solving a handful of my practice problems here.