CHAPTER 21: VISUAL LABS 21a AND 21b

These original exercises use the same synthetic Harbour dataset as the book.
The display/check runner opens companion/sql/harbour.db read-only.
If that file is missing, first follow Chapter17 and run sql/setup_database.py.

RUN
1. Open walkthrough.py in IDLE and choose Run > Run Module (F5).
2. Alternatively, open a terminal in this ch21 folder.
   Windows: py walkthrough.py
   macOS/Linux: python3 walkthrough.py
Use the Python command that already worked in your setup.
No network access or third-party package is required.

The .sql files hold inspectable questions. The supplied Python wrapper prints
results and checks the original expected values. Before editing, predict the
new result. After editing, compare it manually; an old assertion may now fail
because your intentional change needs a different expected answer. Do not
remove a failed check until you can explain the changed result.

EXPECTED RESULTS AND PRACTICE
21a returns order IDs 201, 203, 202, 204, 206 in date order, totaling 380 euros. 21b returns 8 total, 4 priority and 7 assessed leads. Change/predict/check: remove only the paid-status condition. Order 205 enters with 100 euros, yielding six orders and 480 euros of order amounts, not paid revenue. The separate denominator modification filters to four priority leads before counting; 4/4 cannot describe the share of all eight original leads.
