Revisión de vistas e índices

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@91 c93665c3-c93d-084d-9b98-7d5f4a9c3376
This commit is contained in:
David Arranz 2007-07-16 16:54:12 +00:00
parent aff6f9dd3c
commit 712be52b1b
2 changed files with 50 additions and 35 deletions

Binary file not shown.

View File

@ -317,7 +317,7 @@ SELECT
ALBARANES_PROVEEDOR.ID, ALBARANES_PROVEEDOR.ID,
ALBARANES_PROVEEDOR.ID_EMPRESA, ALBARANES_PROVEEDOR.ID_EMPRESA,
ALBARANES_PROVEEDOR.ID_PROVEEDOR, ALBARANES_PROVEEDOR.ID_PROVEEDOR,
V_PROVEEDORES.NOMBRE, CONTACTOS.NOMBRE,
ALBARANES_PROVEEDOR.FECHA_ALBARAN, ALBARANES_PROVEEDOR.FECHA_ALBARAN,
ALBARANES_PROVEEDOR.REFERENCIA, ALBARANES_PROVEEDOR.REFERENCIA,
ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR, ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR,
@ -352,7 +352,7 @@ SELECT
ALBARANES_PROVEEDOR.ID_FORMA_PAGO ALBARANES_PROVEEDOR.ID_FORMA_PAGO
FROM FROM
ALBARANES_PROVEEDOR ALBARANES_PROVEEDOR
LEFT OUTER JOIN V_PROVEEDORES ON (ALBARANES_PROVEEDOR.ID_PROVEEDOR = V_PROVEEDORES.ID) LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_PROVEEDOR.ID_PROVEEDOR)
LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_PEDIDO) LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_PEDIDO)
LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_FACTURA) LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_FACTURA)
LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDOR.ID_ALMACEN); LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDOR.ID_ALMACEN);
@ -528,9 +528,9 @@ SELECT RECIBOS_PROVEEDOR.ID,
RECIBOS_PROVEEDOR.FECHA_MODIFICACION, RECIBOS_PROVEEDOR.FECHA_MODIFICACION,
RECIBOS_PROVEEDOR.USUARIO RECIBOS_PROVEEDOR.USUARIO
FROM V_REC_PRO_SITUACION FROM RECIBOS_PROVEEDOR
LEFT JOIN RECIBOS_PROVEEDOR LEFT JOIN V_REC_PRO_SITUACION
ON (RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO) ON (V_REC_PRO_SITUACION.ID_RECIBO = RECIBOS_PROVEEDOR.ID)
LEFT JOIN FACTURAS_PROVEEDOR LEFT JOIN FACTURAS_PROVEEDOR
ON (FACTURAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_FACTURA) ON (FACTURAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_FACTURA)
LEFT JOIN FORMAS_PAGO LEFT JOIN FORMAS_PAGO
@ -615,9 +615,9 @@ SELECT RECIBOS_CLIENTE.ID,
RECIBOS_CLIENTE.FECHA_MODIFICACION, RECIBOS_CLIENTE.FECHA_MODIFICACION,
RECIBOS_CLIENTE.USUARIO RECIBOS_CLIENTE.USUARIO
FROM V_REC_CLI_SITUACION FROM RECIBOS_CLIENTE
LEFT JOIN RECIBOS_CLIENTE LEFT JOIN V_REC_CLI_SITUACION
ON (RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO) ON (V_REC_CLI_SITUACION.ID_RECIBO = RECIBOS_CLIENTE.ID)
LEFT JOIN FACTURAS_CLIENTE LEFT JOIN FACTURAS_CLIENTE
ON (FACTURAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_FACTURA) ON (FACTURAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_FACTURA)
LEFT JOIN FORMAS_PAGO LEFT JOIN FORMAS_PAGO
@ -688,52 +688,67 @@ CREATE VIEW V_REC_FAC_PRO_PAGADOS(
ID_FACTURA, ID_FACTURA,
NUM_REC_PAGADOS) NUM_REC_PAGADOS)
AS AS
SELECT V_RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_RECIBOS_PROVEEDOR.ID) SELECT RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_REC_PRO_SITUACION.ID_RECIBO)
FROM V_RECIBOS_PROVEEDOR FROM V_REC_PRO_SITUACION LEFT JOIN RECIBOS_PROVEEDOR ON
WHERE (V_RECIBOS_PROVEEDOR.SITUACION = 'PAGADO') (RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO)
GROUP BY V_RECIBOS_PROVEEDOR.ID_FACTURA; WHERE (V_REC_PRO_SITUACION.SITUACION = 'PAGADO')
GROUP BY RECIBOS_PROVEEDOR.ID_FACTURA
;
CREATE VIEW V_REC_FAC_CLI_COBRADOS( CREATE VIEW V_REC_FAC_CLI_COBRADOS(
ID_FACTURA, ID_FACTURA,
NUM_REC_COBRADOS) NUM_REC_COBRADOS)
AS AS
SELECT V_RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_RECIBOS_CLIENTE.ID) SELECT RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_REC_CLI_SITUACION.ID_RECIBO)
FROM V_RECIBOS_CLIENTE FROM V_REC_CLI_SITUACION LEFT JOIN RECIBOS_CLIENTE ON
WHERE (V_RECIBOS_CLIENTE.SITUACION = 'COBRADO') (RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO)
GROUP BY V_RECIBOS_CLIENTE.ID_FACTURA; WHERE (V_REC_CLI_SITUACION.SITUACION = 'COBRADO')
GROUP BY RECIBOS_CLIENTE.ID_FACTURA
;
CREATE VIEW V_FAC_PRO_SITUACION( CREATE VIEW V_FAC_PRO_SITUACION(
ID_FACTURA, ID_FACTURA,
SITUACION) SITUACION)
AS AS
SELECT V_REC_FAC_PRO.ID_FACTURA, SELECT ID_FACTURA,
CASE CASE
WHEN ((V_REC_FAC_PRO.NUM_RECIBOS = 0) WHEN ((SUM(NUM_RECIBOS) = 0)
OR (COALESCE (V_REC_FAC_PRO_PAGADOS.NUM_REC_PAGADOS,0) = 0)) THEN 'PENDIENTE' OR (SUM(NUM_REC_PAGADOS) = 0)) THEN 'PENDIENTE'
WHEN (V_REC_FAC_PRO.NUM_RECIBOS = COALESCE (V_REC_FAC_PRO_PAGADOS.NUM_REC_PAGADOS, 0)) THEN 'PAGADA' WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_PAGADOS)) THEN 'PAGADA'
ELSE 'PARCIALMENTE PAGADA' ELSE 'PARCIALMENTE PAGADA'
END END AS SITUACION
FROM V_REC_FAC_PRO FROM
LEFT JOIN V_REC_FAC_PRO_PAGADOS (
ON (V_REC_FAC_PRO_PAGADOS.ID_FACTURA = V_REC_FAC_PRO.ID_FACTURA); SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_PAGADOS
FROM V_REC_FAC_PRO
UNION ALL
SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_PAGADOS
FROM V_REC_FAC_PRO_PAGADOS
)
GROUP BY ID_FACTURA;
CREATE VIEW V_FAC_CLI_SITUACION( CREATE VIEW V_FAC_CLI_SITUACION(
ID_FACTURA, ID_FACTURA,
SITUACION) SITUACION)
AS AS
SELECT V_REC_FAC_CLI.ID_FACTURA, SELECT ID_FACTURA,
CASE CASE
WHEN ((V_REC_FAC_CLI.NUM_RECIBOS = 0) WHEN ((SUM(NUM_RECIBOS) = 0)
OR (COALESCE (V_REC_FAC_CLI_COBRADOS.NUM_REC_COBRADOS,0) = 0)) THEN 'PENDIENTE' OR (SUM(NUM_REC_COBRADOS) = 0)) THEN 'PENDIENTE'
WHEN (V_REC_FAC_CLI.NUM_RECIBOS = COALESCE (V_REC_FAC_CLI_COBRADOS.NUM_REC_COBRADOS, 0)) THEN 'PAGADA' WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_COBRADOS)) THEN 'PAGADA'
ELSE 'PARCIALMENTE PAGADA' ELSE 'PARCIALMENTE PAGADA'
END END AS SITUACION
FROM V_REC_FAC_CLI FROM
LEFT JOIN V_REC_FAC_CLI_COBRADOS (
ON (V_REC_FAC_CLI_COBRADOS.ID_FACTURA = V_REC_FAC_CLI.ID_FACTURA); SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_COBRADOS
FROM V_REC_FAC_CLI
UNION ALL
SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_COBRADOS
FROM V_REC_FAC_CLI_COBRADOS
)
GROUP BY ID_FACTURA;
CREATE VIEW V_FACTURAS_PROVEEDOR( CREATE VIEW V_FACTURAS_PROVEEDOR(
@ -983,7 +998,7 @@ SELECT
ALBARANES_CLIENTE.ID, ALBARANES_CLIENTE.ID,
ALBARANES_CLIENTE.ID_EMPRESA, ALBARANES_CLIENTE.ID_EMPRESA,
ALBARANES_CLIENTE.ID_CLIENTE, ALBARANES_CLIENTE.ID_CLIENTE,
V_CLIENTES.NOMBRE, CONTACTOS.NOMBRE,
ALBARANES_CLIENTE.FECHA_ALBARAN, ALBARANES_CLIENTE.FECHA_ALBARAN,
ALBARANES_CLIENTE.REFERENCIA, ALBARANES_CLIENTE.REFERENCIA,
ALBARANES_CLIENTE.REFERENCIA_CLIENTE, ALBARANES_CLIENTE.REFERENCIA_CLIENTE,
@ -1021,7 +1036,7 @@ SELECT
ALBARANES_CLIENTE.FECHA_RECEPCION ALBARANES_CLIENTE.FECHA_RECEPCION
FROM FROM
ALBARANES_CLIENTE ALBARANES_CLIENTE
LEFT OUTER JOIN V_CLIENTES ON (ALBARANES_CLIENTE.ID_CLIENTE = V_CLIENTES.ID) LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_CLIENTE.ID_CLIENTE)
LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = ALBARANES_CLIENTE.ID_PEDIDO) LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = ALBARANES_CLIENTE.ID_PEDIDO)
LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = ALBARANES_CLIENTE.ID_FACTURA) LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = ALBARANES_CLIENTE.ID_FACTURA)
LEFT OUTER JOIN V_ALB_CLI_SITUACION ON (V_ALB_CLI_SITUACION.ID = ALBARANES_CLIENTE.ID) LEFT OUTER JOIN V_ALB_CLI_SITUACION ON (V_ALB_CLI_SITUACION.ID = ALBARANES_CLIENTE.ID)