这是我的查询
SELECT *
FROM (SELECT cexp.expediente.num_expe "Num. Expediente",
cexp.expediente.cod_tipo_expe Tipo,
cexp.expediente.nif NIF, cexp.expediente.interesado "Razon Social",
MAX (DECODE (a.descripcion,
'NUMERO_FACTURA', cexp.md_valores.valor,
NULL
)
) "Numero Factura",
MAX (DECODE (a.descripcion,
'IMPORTE_FACTURA', cexp.md_valores.valor,
NULL
)
) "Importe bruto",
MAX (DECODE (a.descripcion,
'IMPORTE_NETO', cexp.md_valores.valor,
NULL
)
) "Importe neto",
MAX (DECODE (a.descripcion,
'FECHA_PRESENTACION_FACTURA', cexp.md_valores.valor,
NULL
)
) "Fecha recepcion"
FROM cexp.md_propiedades a
RIGHT JOIN
(cexp.expediente RIGHT JOIN cexp.md_valores
ON cexp.expediente.num_expe = cexp.md_valores.num_expe)
ON (a.propiedad = md_valores.propiedad)
AND (a.cod_tipo_expe = md_valores.cod_tipo_expe)
WHERE (cexp.expediente.cod_tipo_acto = '12EO' AND (cexp.expediente.cod_tipo_expe='CM11' OR cexp.expediente.cod_tipo_expe='FA11' OR cexp.expediente.cod_tipo_expe='CM08' OR cexp.expediente.cod_tipo_expe='FA09'))
GROUP BY cexp.expediente.num_expe,
cexp.expediente.interesado,
cexp.expediente.nif,
cexp.expediente.cod_tipo_expe)
当我使用此代码时,我没有问题。这是结果: The Result
但是现在我需要在WHERE子句中包含“Fecha recepcion”> '01 / 01/2016'和“Fecha recepcion”< '06 / 06 / 2016' 。
可以帮助我吗?
答案 0 :(得分:2)
我的猜测是你试图将它添加到错误的位置,它是在内部选择中计算的,因此 - 你需要用另一个select包装它以便能够在WHERE
子句中使用它(至少对Oracle而言):
SELECT * FROM (
..... Your Query Here
)
WHERE "Fecha recepcion" between '01/01/2016' and '06/06/2016'.
尽管此列似乎根本不是日期,并且要使用日期范围功能,因此应使用TO_DATE()
将其格式化为日期,以便:
WHERE "Fecha recepcion" between to_date('01/01/2016','dd/mm/yyyy') and to_date('06/06/2016','dd/mm/yyyy').
答案 1 :(得分:0)
您似乎只需要将条件添加到外部查询,而不依赖于隐式转换:
return $this;