查询返回TOAD和PHP之间的不同结果

时间:2016-11-15 16:16:53

标签: php oracle plsql toad

我正在使用PHP作为Web应用程序,使用Oracle作为数据库,我使用TOAD测试查询。

当我运行第一个查询时,我得到了90行结果(PHP和toad):

select cliente, nombre, cadena,sum(valor) valor, sum(docs) docs,
ROUND(sum(vprom),2) vprom FROM DBO.LAC_PEDIDO_TIENDA_DIA WHERE
(trunc(fecha)=trunc(TO_DATE('2016-11-14','YYYY-MM-DD'))  ) GROUP BY 
cliente, nombre, cadena

当我运行第二个时,我从蟾蜍获得91,从PHP获得146:

select cliente, nombre, cadena,sum(valor) valor, sum(docs) docs, 
ROUND(sum(vprom),2) vprom FROM DBO.LAC_PEDIDO_TIENDA_DIA WHERE 
(trunc(fecha)=trunc(TO_DATE('2016-11-14','YYYY-MM-DD')) OR DLUN>7 ) 
GROUP BY cliente, nombre, cadena

不同的是“ DLUN> 7

我为连接创建了一个类:

<?php 
include 'credenciales.php';

class PHPRequest
{
    public $c1;

    function __construct($ruta,$usuario,$password)
    {
        try {
            $this->c1 = new PDO($ruta,$usuario,$password);
            $this->c1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }catch (Exception $e) {
            echo json_encode(array('exito'=>'0', 'mensaje'=>'error de conexion'));
        }//catch
    }

    public function cantidadFilas($query)
{
    $cantidad = $this->c1->query($query);
    return $cantidad->fetchColumn();
}

function query($query)
    {   
        try {
            $encode = array();
            $cantidad = $this->cantidadFilas($query);
            $resultado = $this->c1->query($query,PDO::FETCH_ASSOC);
            $contador=0;
            if($cantidad!='0' && $cantidad!='-1'){
            while($valor=$resultado->fetch()) {

                $contador++;

                //var_dump($resultado->fetch());

                $encode[]=$this->utf8ize($valor);
            }//while
            echo $contador;
            }
            if (sizeof($encode)==0) {
                $encode = array("exito"=>0,'mensaje'=>'no encontraron registros');
            }
            $enconde = $this->utf8ize($encode);
            return json_encode($encode,JSON_PRETTY_PRINT);
        } catch (Exception $e) {
            $encode = array("exito"=>0,'mensaje'=>'error:'.$e->getMessage());
            return json_encode($encode);
        }

    }
function utf8ize($d) {
        if (is_array($d)) {
            foreach ($d as $k => $v) {
                $d[$k] = $this->utf8ize($v);
            }
        } else if (is_string ($d)) {
            return utf8_encode($d);
        }
        return $d;
    }
}


$proceso = new PHPRequest($ruta,$usuario,$password);

  $proceso->query("select cliente, nombre, cadena,sum(valor) valor, sum(docs) docs, ROUND(sum(vprom),2) vprom FROM DBO.LAC_PEDIDO_TIENDA_DIA WHERE (trunc(fecha)=trunc(TO_DATE('2016-11-14','YYYY-MM-DD')) OR DLUN>7 ) GROUP BY cliente, nombre, cadena");
 ?>

这是数据库表视图的代码:

CREATE OR REPLACE FORCE VIEW DBO.LAC_PEDIDO_TIENDA_DIA
(
   CLIENTE, NOMBRE, CADENA, FECHA, VALOR, DOCS, DDOM, DLUN, DMAR, DMIE, DJUE, DVIE, DSAB, VPROM
)
AS
   SELECT cliente, nombre, cadena, fecha, valor, docs, 0 dDOM, 0 dLUN, 0 dMAR, 0 dMIE, 0 dJUE, 0 dVIE, 0 dSAB, 0 VPROM
     FROM dbo.lac_pedidos_dia
   UNION ALL
   SELECT cliente, nombre, cadena, TO_DATE ('', 'DD/MM/YYYY') fecha, 0 VALOR, 0 DOCS, dDOM, dLUN, dMAR, dMIE, dJUE, dVIE, dSAB, VPROM FROM dbo.lac_dia_tienda;

0 个答案:

没有答案