在zend框架2中执行sql查询

时间:2013-10-23 04:28:29

标签: sql zend-framework2

我需要在ZF2中执行这个SQL查询:

选择FA_VENTAS.EM_CODIGO,         FA_VENDED.VN_NOMBRE作为VENDEDOR,

    FA_CLIEN.CE_NOMBRE AS  CLIENTE,
    FA_TIPCLI.TC_DESCRI AS  CANAL ,
    MIN(FA_DETVEN.CL_NOMDEP) AS  MARCA ,
    IN_ITEM.IT_CODBAR AS  CODBARRA ,
    IN_ITEM.IT_NOMBRE AS  PRODUCTO ,
    TO_CHAR(FA_VENTAS.VE_FECHA,'MM')AS  MESES ,
    TO_CHAR(FA_VENTAS.VE_FECHA,'YYYY')AS  ANIO ,
   SUM(DV_SUBTOTAL-DV_VALIVA) AS  VALOR ,
   SUM(DV_CANPED) AS  UNIDAD  
    FROM 
DOUS.FA_VENTAS FA_VENTAS, 
DOUS.FA_DETVEN FA_DETVEN,
DOUS.IN_ITEM IN_ITEM  , 
DOUS.IN_CLASE IN_CLASE ,    
DOUS.FA_VENDED FA_VENDED,
DOUS.FA_CLIEN FA_CLIEN,
DOUS.FA_TIPCLI FA_TIPCLI
WHERE
     FA_TIPCLI.TC_CODIGO=FA_CLIEN.TC_CODIGO
AND  FA_VENTAS.EM_CODIGO = FA_DETVEN.EM_CODIGO
AND  FA_VENTAS.VE_CODIGO = FA_DETVEN.VE_CODIGO
AND  FA_VENTAS.TP_CODIGO = FA_DETVEN.TP_CODIGO
AND  FA_VENTAS.PE_CODIGO = FA_DETVEN.PE_CODIGO
AND  FA_DETVEN.EM_CODIGO = IN_ITEM.EM_CODIGO 
AND  FA_DETVEN.IT_CODIGO = IN_ITEM.IT_CODIGO
AND  IN_ITEM.EM_CODIGO = IN_CLASE.EM_CODIGO
AND  IN_ITEM.CL_CODIGO = IN_CLASE.CL_CODIGO 
AND  FA_VENDED.VN_CODIGO=4
AND  FA_VENTAS.CE_CODIGO=FA_CLIEN.CE_CODIGO
AND  FA_VENTAS.EM_CODIGO = '4'  
AND  FA_VENTAS.TP_CODIGO = '2'

AND  TRUNC(FA_VENTAS.VE_FECHA) between'01-jan-2009' and '31-jan-2009'
   GROUP BY  FA_VENTAS.EM_CODIGO,
        FA_VENDED.VN_NOMBRE, 
        FA_CLIEN.CE_NOMBRE,
         FA_DETVEN.CL_NOMDEP,
             FA_VENTAS.VE_FECHA,
         IN_ITEM.IT_CODBAR,
         IN_ITEM.IT_NOMBRE,
         FA_TIPCLI.TC_DESCRI

UNION ALL

选择FA_DEVOLU.EM_CODIGO,         FA_VENDED.VN_NOMBRE作为VENDEDOR,

    FA_CLIEN.CE_NOMBRE AS  CLIENTE, 
    FA_TIPCLI.TC_DESCRI AS  CANAL  , 
    MIN(FA_DETDEVOL.CL_NOMDEP)AS  MARCA ,
    IN_ITEM.IT_CODBAR AS  CODBARRA ,
    IN_ITEM.IT_NOMBRE AS  PRODUCTO ,
    TO_CHAR(FA_DEVOLU.DE_FECHA,'MM') AS  MESES ,
    TO_CHAR(FA_DEVOLU.DE_FECHA,'YYYY') AS  ANIO ,
    -SUM(FA_DETDEVOL.DD_SUBTOTAL- FA_DETDEVOL.DD_VALIVA) AS  VALOR ,
    -SUM(DD_CANTID) AS  UNIDAD 

这     DOUS.FA_DEVOLU,     DOUS.FA_DETDEVOL,     DOUS.IN_ITEM IN_ITEM,     DOUS.IN_CLASE IN_CLASE,
    DOUS.FA_VENDED FA_VENDED,     DOUS.FA_CLIEN FA_CLIEN,     DOUS.FA_TIPCLI FA_TIPCLI         哪里          FA_TIPCLI.TC_CODIGO = FA_CLIEN.TC_CODIGO     AND FA_DEVOLU.EM_CODIGO = FA_DETDEVOL.EM_CODIGO     AND FA_DEVOLU.DE_CODIGO = FA_DETDEVOL.DE_CODIGO     AND FA_DEVOLU.TP_CODIGO = FA_DETDEVOL.TP_CODIGO     AND FA_DETDEVOL.EM_CODIGO = IN_ITEM.EM_CODIGO     AND FA_DETDEVOL.IT_CODIGO = IN_ITEM.IT_CODIGO     AND IN_ITEM.EM_CODIGO = IN_CLASE.EM_CODIGO     AND IN_ITEM.CL_CODIGO = IN_CLASE.CL_CODIGO     AND FA_DETDEVOL.EM_CODIGO = 4     AND FA_DETDEVOL.TP_CODIGO ='2'     '01 -jan-2009'和'31 -jan-2009'之间的AND TRUNC(FA_DEVOLU.DE_FECHA)

AND  FA_VENDED.VN_CODIGO=4
AND  FA_DEVOLU.CE_CODIGO=FA_CLIEN.CE_CODIGO
GROUP BY    FA_DEVOLU.EM_CODIGO,
        FA_VENDED.VN_NOMBRE,
        FA_CLIEN.CE_NOMBRE,
        FA_DETDEVOL.CL_NOMDEP,
            FA_DEVOLU.DE_FECHA,
        IN_ITEM.IT_CODBAR,
        IN_ITEM.IT_NOMBRE,
        FA_TIPCLI.TC_DESCRI

但我不明白使用什么型号,视图和命令。 请帮帮我

1 个答案:

答案 0 :(得分:1)

使用这样的查询,您应该使用\ Zend \ Db \ Adapter \ Adapter

$sql = "SELECT SELECT FA_VENTAS.EM_CODIGO, ...";
$statement = $adapter->query($sql);
$result = $statement->execute();

HTH