我想要在 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>
查询在查询工具中运行良好。我还可以使用 Invantive 控制块以一行/一列的列表形式检索数据。但是,如何在不维护块的情况下直接在 Excel 单元格中检索此查询的结果?
答案1
您可以使用以下公式:
=I_SQL_SELECT_SCALAR("pro.code", "exactonlinerest..projects pro join exactonlinerest..shoporders sho on sho.project = pro.id", "shopordernumber = " & F2)
但请注意,像这样的硬编码 SQL 很容易出错,而且在升级时成本高昂,因为当字段发生变化时必须检查 SQL,并且可能手动更正。特别是因为此查询使用连接和一些 SQL 注入技术,这些技术可能会在未来版本中被禁用。
您可能需要列出需要经常重复的制造查询,并将其添加到 Invantive Control 支持的 Excel 公式中。
还建议使用样式指南pjt
为和的别名。projects
sor
shoporders
还请注意,当单元格 F2 为空时,SQL 将在 where 子句中失败。作为替代方案,您可能希望添加“如果为空,则使用‘null’”或类似内容。