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