我正在运行一个执行许多操作的脚本,但我正在尝试在我的php中使用Pervasive语句,该语句在我查询的数据库中有效。我已经尝试了所有的技巧,但是没有成功使这个应该在显示的表中工作。
$pom = $dbx->getOne('SELECT (SELECT SUM(wrt_sls) FROM wrt
WHERE wrt_cat = \'POM\'
AND wrt_cng_dat_4 >= '.$start.'
AND wrt_cng_dat_4 <= '.$end.'
AND wrt_pft_ctr in '.$pcs.') +
(SELECT SUM(wrt_sls) FROM wrt
WHERE wrt_cat in (\'BED\',\'MP\')
AND wrt_vend_id = \'PROTECTABED\'
AND wrt_cng_dat_4 >= '.$start.'
AND wrt_cng_dat_4 <= '.$end.'
AND wrt_pft_ctr in '.$pcs);
同样,我在Pervasive中获得了正确的结果,但在实际应用程序中却什么也没得到。有什么提示吗?
答案 0 :(得分:0)
我要检查的第一件事是$ start,$ end和$ pcs的值。例如,您使用它们的方式似乎是INT值。但是,如果表中的列不是INT类型,则在查询中不会正确引用它们。我也没有看到结束,在您的查询中需要正常工作。您可能需要重写您的查询,如:
$pom = $dbx->getOne("SELECT (SELECT SUM(wrt_sls) FROM wrt
WHERE wrt_cat = 'POM'
AND wrt_cng_dat_4 >= '" . $start . "'
AND wrt_cng_dat_4 <= '" . $end . "'
AND wrt_pft_ctr in '" . $pcs . "') +
(SELECT SUM(wrt_sls) FROM wrt
WHERE wrt_cat in ('BED','MP')
AND wrt_vend_id = 'PROTECTABED'
AND wrt_cng_dat_4 >= '" . $start . "'
AND wrt_cng_dat_4 <= '" . $end . "'
AND wrt_pft_ctr in '" . $pcs ."')");
答案 1 :(得分:0)
不,这似乎也不起作用,但我采取了不同的方法,这就是最终工作......
$pom = $dbx->getOne('
SELECT SUM(wrt_sls) FROM wrt
WHERE wrt_cat = \'POM\'
AND wrt_cng_dat_4 >= '.$start.'
AND wrt_cng_dat_4 <= '.$end.'
AND wrt_pft_ctr in '.$pcs);
$pab = $dbx->getOne('
SELECT SUM(wrt_sls) FROM wrt
WHERE wrt_cat = \'BED\'
AND wrt_vend_id = \'PROTECTABED\'
AND wrt_cng_dat_4 >= '.$start.'
AND wrt_cng_dat_4 <= '.$end.'
AND wrt_pft_ctr in '.$pcs);
$protect = $pom + $pab;
$tpom += $protect;
非常感谢你的回复。