Подобный разбор запросов, по чему что не работает, уже подходит под платную техподдержку.mihalich81 писал(а):Вот мой запрос. Здесь немного сложнее, т.к. в основном цикле обрабатываются продажи, для получения поставщика из закупок пришлось использовать вложенный SELECT. В этом, скорее всего и проблема. Не пойму, почему на двух базах работает, а на моей основной выводит ошибку запроса 104. Боевой базе уже четыре года ежедневного использования. Куча удалений и т.п.
Запрос из отчёта OXETTA.Код: Выделить всё
SELECT goods.id, goods.product_code, goods.name, (SELECT good_groups.name FROM good_groups WHERE goods.group_id=good_groups.id) AS goods_group_name, SUM(waybill_items.quantity) AS sold, (SELECT SUM(remainder) FROM remainders WHERE good_id=goods.id AND shop_id IN ({shop-ids})) AS remains, (SELECT suppliers.name FROM waybill_items, waybills, suppliers WHERE goods.id = waybill_items.goods_id AND waybill_items.waybill_id = waybills.id AND waybills.record_type=1 AND waybills.contractor_id = suppliers.id) AS suppliers_name, (1.0 + {percent}.0/100) * SUM(waybill_items.quantity) - ( SELECT SUM(remainders.remainder - remainders.reserved + remainders.expected - remainders.min_amount) FROM remainders WHERE good_id=goods.id AND shop_id IN ({shop-ids}) ) AS forecast FROM goods, waybill_items, waybills WHERE goods.is_deleted=0 AND goods.good_type<>1 AND waybill_items.goods_id=goods.id AND waybill_items.is_deleted=0 AND waybills.id=waybill_items.waybill_id AND waybills.waybill_date>={today}-{days}*86400 AND waybills.waybill_date<={today}+86400 AND waybills.record_type=-1 AND waybills.is_deleted=0 AND waybills.shop_id IN ({shop-ids}) GROUP BY 1 HAVING (1.0 + {percent}.0/100) * SUM(waybill_items.quantity) - ( SELECT SUM(remainders.remainder - remainders.reserved + remainders.expected - remainders.min_amount) FROM remainders WHERE good_id=goods.id AND shop_id IN ({shop-ids}) ) > 0.01 ORDER BY 3
Если запрос из шаблона самой Тирики, значит он работает, тогда в чем проблема?
Не понятно.
P.S. мельком пробежаться по запросу осилил все таки.
Замечаний куча.
Самое огромное: это некорректное написание запроса. Вам бы фарберд 3.0, он бы сразу выплюнул этот запрос... фарберд 2.5 скушает, но не весь, а с частичным исправлением все же.
Приводите запрос в порядок, как положено, в соответствии с правилами sql.