0

我正在运行一个可以做很多事情的脚本,但我试图让 Pervasive 语句在我的 php 中工作,该语句在我正在查询的数据库中工作。我已经尝试了所有的技巧,但没有成功让它在应该显示的表格中工作。

$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 中得到了正确的结果,但在实际应用程序中却一无所获。有小费吗?

4

2 回答 2

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;

非常感谢您的回复。

于 2013-01-17T14:50:53.790 回答
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 ."')");
于 2013-01-17T03:21:29.670 回答