diff --git a/Database/scripts/VISTAS.SQL b/Database/scripts/VISTAS.SQL index 57bdfcb..8ff7e7f 100644 --- a/Database/scripts/VISTAS.SQL +++ b/Database/scripts/VISTAS.SQL @@ -34,37 +34,49 @@ facturas_proveedor.ID_EMPRESA, facturas_proveedor_detalles.ID_ARTICULO ; + CREATE VIEW V_INF_ULTCOM( ID_EMPRESA, ID_ARTICULO, + FECHA, IMPORTE_UNIDAD_COMPRA, IMPORTE_NETO_COMPRA, IMPORTE_PORTE_COMPRA) AS + +select id_empresa, id_articulo, fecha_factura, sum(IMPORTE_UNIDAD_COMPRA) as importe_unidad, sum(IMPORTE_NETO_COMPRA) as importe_neto_compra, sum(IMPORTE_PORTE_COMPRA) as importe_porte_compra + +from +( +/*Se hace agrupación de articulos de los detalles de la factura por si se compra el mismo articulo en distintas lineas con distinto precio por ello se hace la media*/ select facturas_proveedor.id_empresa, facturas_proveedor_detalles.ID_ARTICULO, - +0 as ult_com, +facturas_proveedor.fecha_factura, avg(facturas_proveedor_detalles.IMPORTE_UNIDAD) as IMPORTE_UNIDAD_COMPRA, avg(facturas_proveedor_detalles.IMPORTE_UNIDAD - (facturas_proveedor_detalles.IMPORTE_UNIDAD * (facturas_proveedor_detalles.DESCUENTO / 100))) AS IMPORTE_NETO_COMPRA, avg(facturas_proveedor_detalles.IMPORTE_PORTE) as IMPORTE_PORTE_COMPRA - from facturas_proveedor_detalles - left outer join facturas_proveedor on (facturas_proveedor.id = facturas_proveedor_detalles.id_factura) - -left outer join v_inf_fec_ultcom -on (v_inf_fec_ultcom.id_empresa = facturas_proveedor.id_empresa) -and (v_inf_fec_ultcom.id_articulo = facturas_proveedor_detalles.id_articulo) - WHERE (facturas_proveedor_detalles.ID_ARTICULO IS NOT NULL) AND (facturas_proveedor_detalles.ID_ARTICULO > 0) /*Quitamos conceptos libres*/ and (facturas_proveedor_detalles.cantidad > 0) /*Quitamos los abonos*/ +group by 1,2,3,4 + +union +/*Se hace la unión con la vista de fecha de ultima compra de cada articulo y empresa poniendo un parametro a 1 para cuando se agrupen saber que es la última compra*/ +/*todo articulo tendrá ultima compra ya que tiramos de facturas de proveedor*/ +select v_inf_fec_ultcom.id_empresa, v_inf_fec_ultcom.id_articulo, 1, v_inf_fec_ultcom.fecha, 0,0,0 +from v_inf_fec_ultcom + +) + +/*finalmente se hace la grupacion de la unión y se suma para el tema del parametro de ultima compra, quitamos las compras de articulos con parametro 0 ya que son compras antiguas*/ +group by 1,2,3 +having (sum(ult_com)=1); -and (facturas_proveedor.FECHA_FACTURA = v_inf_fec_ultcom.fecha) /*nos quedamos con las ultimas compras*/ -group by 1, 2 -; CREATE VIEW V_INF_ULTCOM_PORARTICULO( ID_EMPRESA,