2013-01-17 33 views
0

我正在运行一个执行很多事情的脚本,但我试图获得一个Pervasive语句在我的php中工作,这个语句在我正在查询的数据库中工作。我已经尽了所有的招数,但曾与获得该表中的工作,这是应该显示在没有成功。总结在PHP中的两个Pervsive SQL语句

$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); 

再次,我得到了普及正确的结果,但我得到什么的实际应用。有小费吗?

回答

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 ."')"); 
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; 

谢谢很多回复。