Получить точные данные онлайн, для которых не существует формулы Excel

341
Guido Leenders

Я хочу получить результат следующего запроса в ячейке Excel:

select pro.code from ExactOnlineRest.Project.projects PRO join ExactOnlineRest.Manufacturing.shoporders SHO on SHO.project = PRO.ID where ShopOrderNumber = <value in cell F2> 

Запрос отлично работает в Query Tool. Я также могу использовать блок Invantive Control для извлечения данных в виде списка с одной строкой / одним столбцом. Но как мне получить результат этого запроса непосредственно в ячейке Excel, не поддерживая блок?

0

1 ответ на вопрос

0
Guido Leenders

Вы можете использовать следующую формулу:

=I_SQL_SELECT_SCALAR("pro.code", "exactonlinerest..projects pro join exactonlinerest..shoporders sho on sho.project = pro.id", "shopordernumber = " & F2) 

Но учтите, что жесткий код SQL, подобный этому, подвержен ошибкам и дорогостоящ при обновлении, поскольку SQL должен проверяться и, возможно, исправляться вручную при изменении полей. Тем более что этот запрос использует объединение и некоторые методы SQL-инъекций, которые могут быть отключены в будущей версии.

Возможно, вы захотите составить список необходимых часто повторяющихся производственных запросов и добавить их в формулы Excel, поддерживаемые Invantive Control.

Также рекомендуется использовать псевдоним pjtдля projects, с помощью руководства по стилю и sorдля shoporders.

Также обратите внимание, что когда ячейка F2 пуста, SQL не будет выполнен в предложении where. В качестве альтернативы вы можете добавить «если пусто, то использовать« ноль »или подобное.

Похожие вопросы