我有这个用 php 编写的查询:
<?php
$dsn="sistema";
$usuario="";
$clave="";
/*conexion mediante odbc*/
$cid=odbc_connect($dsn, $usuario, $clave);
if (!$cid){
exit("<strong>Ya ocurrido un error tratando de conectarse con el origen de datos. </strong>");
}
$sql="SELECT SUM(Document.docimp) AS sumar FROM Document WHERE Doctpo IN ('1','6','7') AND Document.Abocod = 1";
$sql1="SELECT SUM(Document.docimp) AS restar FROM Document WHERE Doctpo IN ('2','3') AND Document.Abocod = 1";
$sql3="Select (A.sumar - A.restar) AS Saldo;
From (;
Select Document.abocod,;
(SELECT SUM(Document.docimp) AS sumar;
FROM Document;
WHERE Doctpo IN ('1','6','7');
AND Document.Abocod = 1;
),;
(SELECT SUM(Document.docimp) AS restar ;
FROM Document;
WHERE Doctpo IN ('2','3');
AND Document.Abocod = 1;
);
From; Document;
Where Document.abocod = 1;
GROUP BY Document.abocod;
)AS A";
$result=odbc_exec($cid,$sql)or die(exit("Error en odbc_exec"));
print odbc_result_all($result,"Border=1"););
?>
从 Document 表中sql
获取,Doctpo 字段中所有类型为 1,6 和 7 的文件,执行字段sum
中的内容Docimp
,按等于 1 的订阅者编号(abocod)过滤并将结果与其名称(别名)一起放置。
功能与sql1
相同sql
,但这里是客户进行的付款,使用与上述相同的字段,但仅选择类型 2 和 3。
sql3
是将sql
and连接到sql1
单个查询中的查询,并执行由sql
and单独执行的所有功能sql1
。
当我将查询 (SQL) 运行到 visual fox pro 中时,它们可以完美运行,但是当我从 php 执行它们sql
并sql1
执行工作时,它总是会在sql3
语句中引发错误。说该表无法识别或不存在。
如果这在 Visual foxpro 本身上完美运行,我无法弄清楚它如何无法与这些表进行连接。
我想知道 php、odbc 和 visual fox pro 是否有“更清洁”或“更好”的方法。
任何人都可以对此有所了解吗?
提前致谢!