## Контекст (таблицы и пример данных) ### Таблицы - `orders(id, total_amount)` - `order_items(order
SQL Developer
Senior
## Контекст (таблицы и пример данных)
### Таблицы
- `orders(id, total_amount)`
- `order_items(order_id, qty, unit_price)`
### Пример данных
**orders**
| id | total_amount |
|----:|-------------:|
| 100 | 1660 |
| 101 | 700 |
**order_items**
| order_id | qty | unit_price |
|---------:|----:|-----------:|
| 100 | 1 | 1200 |
| 100 | 1 | 480 |
| 101 | 1 | 700 |
---
## Задача
Найти заказы, где `orders.total_amount` **не равен** сумме по строкам заказа.
Вернуть: `order_id`, `header_total`, `items_total`, `diff`.
Ответы
```sql
WITH items AS (
SELECT order_id, SUM(qty * unit_price) AS items_total
FROM order_items
GROUP BY order_id
)
SELECT
o.id AS order_id,
o.total_amount AS header_total,
i.items_total,
(o.total_amount - i.items_total) AS diff
FROM orders o
JOIN items i ON i.order_id = o.id
WHERE o.total_amount <> i.items_total;
```