我有一个 firebird 数据库,我在其中调用一个程序来获取一些数据。这个过程需要一个 ID,所以我有两个 php 查询,一个给我所有的 ID,另一个调用这个过程。$queryP ="SELECT PROVEEDOR_ID FROM PROVEEDORES";...some code...while ($RowQ = ibase_fetch_object ($QueryObject)) { $queryCompras =SELECT SUM(IMPORTE) FROM ORSP_CM_COMPRAS_PROV($RowQ->PROVEEDOR_ID, '2019-01-01', '2019-12-31', 'B', 'P', 'N');...some code...我想做类似的事情 SELECT SUM(COMPRA_IMPORTE) FROM ORSP_CM_COMPRAS_PROV((SELECT PROVEEDOR_ID FROM PROVEEDORES), '2019-01-01', '2019-12-31', 'B', 'P', 'N'); 为了避免做太多的数据库调用,但我得到语句失败,SQLSTATE = 21000 单例选择中的多行有没有办法做到这一点?
1 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
您可以加入您的子查询(或在本例中为:表)和存储过程以获得所需的效果。
select sum(COMPRA_IMPORTE)
from PROVEEDORES p
left join ORSP_CM_COMPRAS_PROV(p.PROVEEDOR_ID, '2019-01-01', '2019-12-31', 'B', 'P', 'N') on 1 = 1
请注意,我使用的是left join,但它在加入存储过程时的实际效果类似于 Microsoft SQL Server 调用的OUTER APPLY.
- 1 回答
- 0 关注
- 71 浏览
添加回答
举报
0/150
提交
取消