2013-01-17 67 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; 

謝謝很多回復。