Когда прошу ассистента написать SQL, я сначала даю ему не всю задачу, а маленький срез данных: схему таблиц и несколько строк, включая пограничные случаи.
Затем прошу сделать две вещи: вручную показать ожидаемый результат на этих строках и только потом написать запрос.
Вот схема и 8 строк данных. Сначала вычисли результат вручную в виде таблицы. Затем напиши SELECT. Объясни, какие строки могут задвоиться из-за JOIN.
Это ловит типичную ошибку AI: запрос выглядит убедительно, но меняет смысл данных. Например, один заказ размножается при соединении с таблицей позиций — и вы внезапно считаете выручку дважды.
Маленький набор данных работает как контрольный пример в математике: ответ можно проверить глазами. Если SQL не совпал с ручным расчётом, обсуждаем логику, а не пытаемся угадать, где ошибка в длинном запросе.
Для простого фильтра по одной таблице приём избыточен. Но для агрегаций, дат, статусов и нескольких JOIN он экономит гораздо больше времени, чем занимает.
