0

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

选择 FA_VENTAS.EM_CODIGO,FA_VENDED.VN_NOMBRE 作为供应商,

    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

联合所有

选择 FA_DEVOLU.EM_CODIGO,FA_VENDED.VN_NOMBRE 作为供应商,

    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_EMDIGO 和 FA_DICODIGODIGOVOLE。 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' AND TRUNC(FA_DEVOLU.DE_FECHA) 在 '01-jan-2009' 和 '31-jan-2009' 之间

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

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

4

1 回答 1

1

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

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

hth

于 2013-10-25T12:00:23.943 回答