delete from contactos_categorias; delete from contactos_direcciones; delete from contactos_datos_banco; delete from clientes_dtos_proveedores; delete from agentes_comisiones; delete from clientes_datos; delete from proveedores_datos; delete from personal_datos; delete from pedidos_cliente_detalles; delete from albaranes_cliente_detalles; delete from facturas_cliente_detalles; delete from pagos_cliente; delete from facturas_cliente; delete from albaranes_cliente; delete from pedidos_cliente; delete from pedidos_proveedor_detalles; delete from albaranes_proveedor_detalles; delete from facturas_proveedor_detalles; delete from pagos_proveedor; delete from facturas_proveedor; delete from albaranes_proveedor; delete from pedidos_proveedor; delete from comisiones_liquidadas; delete from contactos; Extract MetaData con cmapos blob, lanzar script en nueva base de datos CREATE TABLE PROVEEDORES ( CODIGO VARCHAR(10) NOT NULL, NIFCIF VARCHAR(10) CHARACTER SET ISO8859_1, NOMBRE VARCHAR(100) CHARACTER SET ISO8859_1, CALLE VARCHAR(150) CHARACTER SET ISO8859_1, NUMERO VARCHAR(20) CHARACTER SET ISO8859_1, PISO VARCHAR(20) CHARACTER SET ISO8859_1, CODIGOPOSTAL VARCHAR(5) CHARACTER SET ISO8859_1, POBLACION VARCHAR(40) CHARACTER SET ISO8859_1, PROVINCIA VARCHAR(30) CHARACTER SET ISO8859_1, TELEFONO1 VARCHAR(30) CHARACTER SET ISO8859_1, TELEFONO2 VARCHAR(30) CHARACTER SET ISO8859_1, FAX VARCHAR(30) CHARACTER SET ISO8859_1, CORREO VARCHAR(60) CHARACTER SET ISO8859_1, PERSONACONTACTO VARCHAR(100) CHARACTER SET ISO8859_1, OBSERVACIONES BLOB SUB_TYPE 1 SEGMENT SIZE 100 CHARACTER SET ISO8859_1, CODIGOCLIENTE VARCHAR(10), ETIQUETADO SMALLINT, ULTIMOCAMBIO TIMESTAMP ); ALTER TABLE PROVEEDORES ADD CONSTRAINT PK_PROVEEDORES PRIMARY KEY (CODIGO); CREATE TABLE SUCURSALESPROVEEDOR ( CODIGOPROVEEDOR VARCHAR(10) NOT NULL, CODIGO SMALLINT NOT NULL, CALLE VARCHAR(150), NUMERO VARCHAR(20), PISO VARCHAR(20), CODIGOPOSTAL VARCHAR(5), POBLACION VARCHAR(40), PROVINCIA VARCHAR(30), TELEFONO1 VARCHAR(30), TELEFONO2 VARCHAR(30), FAX VARCHAR(30), CORREO VARCHAR(60), PERSONACONTACTO VARCHAR(100) ); ALTER TABLE SUCURSALESPROVEEDOR ADD CONSTRAINT PK_SUCURSALESPROVEEDOR PRIMARY KEY (CODIGOPROVEEDOR, CODIGO); ALTER TABLE SUCURSALESPROVEEDOR ADD FOREIGN KEY (CODIGOPROVEEDOR) REFERENCES PROVEEDORES (CODIGO) ON DELETE CASCADE ON UPDATE NO ACTION; COMMIT WORK; /*DATOS*/ Poner generador de ID_CONTACTOS a 1 DECLARE EXTERNAL FUNCTION substr CSTRING(255), SMALLINT, SMALLINT RETURNS CSTRING(255) FREE_IT ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf'; insert into CONTACTOS (ID, REFERENCIA, NIF_CIF, NOMBRE, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, FAX, EMAIL_1, PERSONA_CONTACTO, NOTAS) select GEN_ID(GEN_CONTACTOS_ID, 1), proveedores.CODIGO AS REFERENCIA, proveedores.NIFCIF AS NIF_CIF, proveedores.NOMBRE AS NOMBRE, (COALESCE(proveedores.CALLE,'') || ', ' || COALESCE(proveedores.NUMERO,'') || ' ' || COALESCE(proveedores.PISO,'')) AS CALLE, proveedores.POBLACION AS POBLACION, proveedores.PROVINCIA AS PROVINCIA, proveedores.CODIGOPOSTAL AS CODIGO_POSTAL, substr(proveedores.TELEFONO1,1,25) AS TELEFONO_1, substr(proveedores.TELEFONO2,1,25) AS TELEFONO_2, substr(proveedores.FAX,1,25) AS FAX, proveedores.CORREO AS EMAIL_1, proveedores.PERSONACONTACTO AS PERSONA_CONTACTO, proveedores.OBSERVACIONES AS NOTAS from proveedores; insert into contactos_categorias (ID_CONTACTO, ID_CATEGORIA) select ID, 2 from contactos; insert into proveedores_datos (ID_PROVEEDOR, ID_TIPO_IVA) select CONTACTOS.ID, 2 from CONTACTOS left join contactos_categorias on contactos_categorias.id_contacto = contactos.id where contactos_categorias.id_categoria = 2 delete from proveedores_datos where proveedores_datos.id_proveedor in ( select CONTACTOS.ID from CONTACTOS left join proveedores on proveedores.codigo = contactos.referencia WHERE proveedores.CODIGOCLIENTE is not null); insert into proveedores_datos (ID_PROVEEDOR, ID_TIPO_IVA, CODIGO_ASIGNADO) select CONTACTOS.ID, 2, proveedores.CODIGOCLIENTE from CONTACTOS left join proveedores on proveedores.codigo = contactos.referencia WHERE proveedores.CODIGOCLIENTE is not null; INSERT INTO CONTACTOS_DIRECCIONES (ID, ID_CONTACTO, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, MOVIL, FAX, EMAIL) //Insertamos la sucursales de los proveedores select GEN_ID(GEN_CONTACTOS_DIR_ID, 1), contactos.id AS ID_CONTACTO, (COALESCE(sucursalesproveedor.CALLE,'') || ', ' || COALESCE(sucursalesproveedor.NUMERO,'') || ' ' || COALESCE(sucursalesproveedor.PISO,'')) AS CALLE, sucursalesproveedor.POBLACION AS POBLACION, sucursalesproveedor.PROVINCIA AS PROVINCIA, sucursalesproveedor.CODIGOPOSTAL AS CODIGO_POSTAL, sucursalesproveedor.PERSONACONTACTO AS PERSONA_CONTACTO, substr(sucursalesproveedor.TELEFONO1,1,25) AS TELEFONO, substr(sucursalesproveedor.TELEFONO2,1,25) AS MOVIL, substr(sucursalesproveedor.FAX,1,25) AS FAX, sucursalesproveedor.CORREO AS EMAIL from sucursalesproveedor left join contactos on contactos.referencia = sucursalesproveedor.codigoproveedor left join contactos_categorias on contactos_categorias.id_contacto = contactos.id where contactos_categorias.id_categoria = 2 and (COALESCE(sucursalesproveedor.CALLE,'') || ', ' || COALESCE(sucursalesproveedor.NUMERO,'') || ' ' || COALESCE(sucursalesproveedor.PISO,'')) <> ',' Extract MetaData con cmapos blob, lanzar script en nueva base de datos CREATE TABLE CLIENTES ( CODIGO VARCHAR(10) NOT NULL, NIFCIF VARCHAR(10) CHARACTER SET ISO8859_1, NOMBRE VARCHAR(100) CHARACTER SET ISO8859_1, CALLE VARCHAR(150) CHARACTER SET ISO8859_1, NUMERO VARCHAR(20) CHARACTER SET ISO8859_1, PISO VARCHAR(20) CHARACTER SET ISO8859_1, CODIGOPOSTAL VARCHAR(5) CHARACTER SET ISO8859_1, POBLACION VARCHAR(40) CHARACTER SET ISO8859_1, PROVINCIA VARCHAR(30) CHARACTER SET ISO8859_1, TELEFONO1 VARCHAR(30) CHARACTER SET ISO8859_1, TELEFONO2 VARCHAR(30) CHARACTER SET ISO8859_1, FAX VARCHAR(30) CHARACTER SET ISO8859_1, CORREO VARCHAR(60) CHARACTER SET ISO8859_1, PERSONACONTACTO VARCHAR(100) CHARACTER SET ISO8859_1, OBSERVACIONES BLOB SUB_TYPE 1 SEGMENT SIZE 100 CHARACTER SET ISO8859_1, BANCO VARCHAR(100) CHARACTER SET ISO8859_1, IVA FLOAT DEFAULT 0, DESCUENTO FLOAT DEFAULT 0, TIPOCLIENTE VARCHAR(50) CHARACTER SET ISO8859_1, ETIQUETADO SMALLINT, ULTIMOCAMBIO TIMESTAMP ); ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (CODIGO); CREATE TABLE SUCURSALESCLIENTE ( CODIGOCLIENTE VARCHAR(10) NOT NULL, CODIGO SMALLINT NOT NULL, CALLE VARCHAR(150), NUMERO VARCHAR(20), PISO VARCHAR(20), CODIGOPOSTAL VARCHAR(5), POBLACION VARCHAR(40), PROVINCIA VARCHAR(30), TELEFONO1 VARCHAR(30), TELEFONO2 VARCHAR(30), FAX VARCHAR(30), CORREO VARCHAR(60), PERSONACONTACTO VARCHAR(100) ); ALTER TABLE SUCURSALESCLIENTE ADD CONSTRAINT PK_SUCURSALESCLIENTE PRIMARY KEY (CODIGOCLIENTE, CODIGO); ALTER TABLE SUCURSALESCLIENTE ADD FOREIGN KEY (CODIGOCLIENTE) REFERENCES CLIENTES (CODIGO) ON DELETE CASCADE ON UPDATE NO ACTION; insert into CONTACTOS (ID, REFERENCIA, NIF_CIF, NOMBRE, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, FAX, EMAIL_1, PERSONA_CONTACTO, NOTAS) select GEN_ID(GEN_CONTACTOS_ID, 1), clientes.CODIGO AS REFERENCIA, clientes.NIFCIF AS NIF_CIF, clientes.NOMBRE AS NOMBRE, (COALESCE(clientes.CALLE,'') || ', ' || COALESCE(clientes.NUMERO,'') || ' ' || COALESCE(clientes.PISO,'')) AS CALLE, clientes.POBLACION AS POBLACION, clientes.PROVINCIA AS PROVINCIA, clientes.CODIGOPOSTAL AS CODIGO_POSTAL, substr(clientes.TELEFONO1,1,25) AS TELEFONO_1, substr(clientes.TELEFONO2,1,25) AS TELEFONO_2, substr(clientes.FAX,1,25) AS FAX, clientes.CORREO AS EMAIL_1, clientes.PERSONACONTACTO AS PERSONA_CONTACTO, clientes.OBSERVACIONES AS NOTAS from clientes; insert into contactos_categorias (ID_CONTACTO, ID_CATEGORIA) select ID, 1 from contactos where ID not in (select ID_CONTACTO from contactos_categorias); MIRAR SI TODOS LOS CLIENTES TIENEN DESCUENTO NULL select * from clientes where descuento is not null; MIRAR SI TODOS LOS CLIENTES TIENEN IVA 16% select DISTINCT IVA from clientes; //Establecemos el tipo de iva al 16 para todos los clientes insert into clientes_datos (ID_CLIENTE, ID_TIPO_IVA) select CONTACTOS.ID, 2 from CONTACTOS left join contactos_categorias on contactos_categorias.id_contacto = contactos.id where contactos_categorias.id_categoria = 1; SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 1; insert into contactos_datos_banco (ID, ID_contacto, titular) select GEN_ID(GEN_CONTACTOS_DATOS_BANCO_ID, 1), CONTACTOS.ID, clientes.banco from CONTACTOS left join clientes on clientes.codigo = contactos.referencia WHERE clientes.banco is not null; //Insertamos la distintas sucursales de cliente INSERT INTO CONTACTOS_DIRECCIONES (ID, ID_CONTACTO, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, MOVIL, FAX, EMAIL) select GEN_ID(GEN_CONTACTOS_DIR_ID, 1), contactos.id AS ID_CONTACTO, (COALESCE(sucursalescliente.CALLE,'') || ', ' || COALESCE(sucursalescliente.NUMERO,'') || ' ' || COALESCE(sucursalescliente.PISO,'')) AS CALLE, sucursalescliente.POBLACION AS POBLACION, sucursalescliente.PROVINCIA AS PROVINCIA, sucursalescliente.CODIGOPOSTAL AS CODIGO_POSTAL, sucursalescliente.PERSONACONTACTO AS PERSONA_CONTACTO, substr(sucursalescliente.TELEFONO1,1,25) AS TELEFONO, substr(sucursalescliente.TELEFONO2,1,25) AS MOVIL, substr(sucursalescliente.FAX,1,25) AS FAX, sucursalescliente.CORREO AS EMAIL from sucursalescliente left join contactos on contactos.referencia = sucursalescliente.codigocliente left join contactos_categorias on contactos_categorias.id_contacto = contactos.id where contactos_categorias.id_categoria = 1 and (COALESCE(sucursalescliente.CALLE,'') || ', ' || COALESCE(sucursalescliente.NUMERO,'') || ' ' || COALESCE(sucursalescliente.PISO,'')) <> ',' drop table sucursalesproveedor; DROP TABLE PROVEEDORES; drop table sucursalescliente; DROP TABLE CLIENTES; insert into empresas_contactos (ID_empresa, ID_contacto) select 1, id from contactos;