Страница 1 из 1

Re: Выгрузка определенных столбцов номенклатуры товаров.

Добавлено: 30 июл 2017, 13:12
Vitaly
mihalich81 писал(а):Хороший способ, но не выгружает фото товаров.
Я сделал тоже одной кнопкой скриптом Visual Basic эмуляцией нажатий в Тирике.

Отправлено спустя 3 минуты 44 секунды:
Не могу сделать запрос с выводом поставщика товара.
В Тирике это секретное лицо. Писал об этом, но Сергей не поддержал идею вывести поставщика в отчёты товаров.
Может кто знает способ вывести поставщика к каждому товару?
На 7.2 и выше, с этим нет проблем. Просмотрите , тут есть отчёт с поставщиками.

Re: Выгрузка определенных столбцов номенклатуры товаров.

Добавлено: 07 авг 2017, 18:23
Vitaly
И фотки, и поставщики выгружаются без проблем.
Есть готовые отчёты уже.

Re: Выгрузка определенных столбцов номенклатуры товаров.

Добавлено: 07 авг 2017, 20:16
Vitaly
mihalich81 писал(а):Я сделал отчёт Дозаказ товара в EXCEL. В EXCEL более широкие возможности.
Ничего сложного, но именно в моей боевой сетевой базе выдаёт ошибку. :cry:
Наверно ошибки есть в запросе?
Киньте в личку запрос, посмотрю.

Re: Выгрузка определенных столбцов номенклатуры товаров.

Добавлено: 07 авг 2017, 21:56
Vitaly
Csq писал(а):
mihalich81 писал(а):Я сделал отчёт Дозаказ товара в EXCEL. В EXCEL более широкие возможности.
Ничего сложного, но именно в моей боевой сетевой базе выдаёт ошибку. :cry:
Если я правильно сообразил, можно посмотреть такой запрос

Код: Выделить всё

select waybill_items.waybill_id, waybill_items.goods_id, goods.name, waybills.contractor_id, suppliers.name
from waybills, waybill_items, goods, suppliers
where waybill_items.waybill_id = waybills.id 
AND waybill_items.goods_id=goods.id
AND suppliers.id= waybills.contractor_id
AND waybills.record_type=1 order by waybills.id desc
Выводит колонки: id продажи, id товара, наименование товара, id поставщика, имя поставщика везде где record_type=1 (это закупка)
А с ним и глянуть, как его запихать в дозаказ.
Запрос полностью не правильно написанный... Уходит в цикл скорей всего.
И или показывает бред, или же не показывает ничего.

Re: Выгрузка определенных столбцов номенклатуры товаров.

Добавлено: 08 авг 2017, 21:14
Vitaly
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.

Re: Выгрузка определенных столбцов номенклатуры товаров.

Добавлено: 09 авг 2017, 23:26
Vitaly
mihalich81 писал(а):Спасибо за ответ!
На SQLite мой запрос работает, хотя не должен. Видимо, имеют место невысокие требования к синтаксису.
Для FireBird 2.5 нашёл пару ошибок.
1. Список GROUP BY обязательно должен содержать все поля, кроме агрегатных функций.
2. Применение GROUP BY исключает возможность применения вложенных SELECT для родительского.
Для FireBird 3.0 не тестировал.
С пунктом 2 не согласен :-) при определенных условиях можно.