在PHP中总结两个Pervsive SQL语句

时间:2013-01-17 03:00:05

标签: php pervasive sql

我正在运行一个执行许多操作的脚本,但我正在尝试在我的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中获得了正确的结果,但在实际应用程序中却什么也没得到。有什么提示吗?

2 个答案:

答案 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;

非常感谢你的回复。

相关问题