SQL – Precio mínimo de los comparativos

Función SQL para obtener el precio mínimo de las ofertas de proveedores de los comparativos: CREATE FUNCTION F_COMPA_PRECIO_MIN(@EMPRESA VARCHAR(12),@OBRA VARCHAR(12),@COD_INTERNO VARCHAR(8)) RETURNS DECIMAL(18,4) AS BEGIN    DECLARE @PRECIO_MIN DECIMAL(18,4);    SET @PRECIO_MIN=(SELECT MIN(CP.PRECIO) PRECIO_MIN FROM T_COMPA_LIN L JOIN T_COMPA_PRE CP ON CP.EMPRESA=L.EMPRESA AND CP.OBRA=L.OBRA AND CP.COMPA=L.COMPA ANDCP.LINEA=L.LINEA WHERE L.EMPRESA=@EMPRESA AND L.OBRA=@OBRA AND  L.COD_INTERNO=@COD_INTERNO AND CP.PRECIO>0 );    RETURN @PRECIO_MIN END 

TREE-Trigger para firma de facturas escaladas por importe

En ocasiones los clientes quieren que la firma de las facturas dependan del importe. En el siguiente ejemplo aplicamos un sencillo trigger para que las facturas de más de 3000€ las tenga que firmar dirección (perfil DIR), las de más de 1500€ las tenga que firmar el jefe de grupo (perfil DJO), y el resto Leer másTREE-Trigger para firma de facturas escaladas por importe[…]

SQL – Dividir una línea de texto en dos, haciendo coincidir la división con un espacio entre palabras

A veces puede ser necesario que queramos hacer una sentencia SQL que nos devuelva una línea dividida en dos cuando el texto excede una determinada longitud (y que la segunda línea esté en blanco cuando el texto simplemente es más corto de dicha longitud). Por ejemplo, en un informe queremos imprimir el nombre de una Leer másSQL – Dividir una línea de texto en dos, haciendo coincidir la división con un espacio entre palabras[…]

SQL – Velocidad de TREE y de SQL Server en remoto

Tree permite conexiones remotas a través de VPN sin necesidad de usar servicios de escritorio remoto (que suponen un coste y requieren normalmente un servidor adicional o robarle recursos al principal). La velocidad remota por VPN depende de varios factores: La complejidad de las consultas SQL La velocidad del servidor SQL La velocidad de la Leer másSQL – Velocidad de TREE y de SQL Server en remoto[…]

SQL – Rehacer indices de todas las tablas

Hace poco me encontré una base de datos Sql Server con comportamientos extraños. Las sentencias SELECT no encontraban los registros recien insertados, aparecían claves primarias duplicadas,… cosas rarísimas que no había visto nunca. El problema surgió tras restaurar un servidor que fue reiniciado a mano por el cliente «…porque tardaba mucho y entonces lo desenchufé… Leer másSQL – Rehacer indices de todas las tablas[…]

Al borrar una factura en a3ERP que se marque en TREE como pendiente de exportar

Cuando pasamos facturas de TREE a a3ERP las facturas quedan marcadas como exportadas. Si queremos que al borrar la factura en a3ERP en TREE vuelva a quedar como pendiente de exportar, tan solo tenemos que generar los siguientes TRIGGER en las bases de datos de a3ERP:   –COMPRAS  CREATE TRIGGER BorrarFraCA3 ON CABEFACC  AFTER DELETE  AS Leer másAl borrar una factura en a3ERP que se marque en TREE como pendiente de exportar[…]

SQL: Query a tabla HTML

A veces puede ser interesante montar una tabla HTML con un simple QUERY. Con el siguiente procedimiento almacenado podemos hacerlo: Obtenido de: https://stackoverflow.com/questions/7070053/convert-a-sql-query-result-table-to-an-html-table-for-email — ============================================= CREATE PROC [dbo].[spQueryToHtmlTable]  (   @query nvarchar(MAX), –A query to turn into HTML format. It should not include an ORDER BY clause.   @orderBy nvarchar(MAX) = NULL, –An optional ORDER Leer másSQL: Query a tabla HTML[…]

Publicada en SQL

Traspaso de usuarios entre servidores SQL

Un problema habitual al migrar servidores es el traspaso de usuarios del viejo servidor al nuevo. Con este método simplificarás el proceso https://docs.microsoft.com/es-es/troubleshoot/sql/security/transfer-logins-passwords-between-instances Paso 1: En el servidor antiguo, generar la función sp_help_revlogin USE master GO IF OBJECT_ID (‘sp_hexadecimal’) IS NOT NULL DROP PROCEDURE sp_hexadecimal GO CREATE PROCEDURE sp_hexadecimal @binvalue varbinary(256), @hexvalue varchar (514) OUTPUT Leer másTraspaso de usuarios entre servidores SQL[…]

Publicada en SQL

Trigger para evitar duplicar albaranes en TREE

Cuando pasamos albaranes a TREE, deberían ser albaranes firmados por la persona que recepcionó el material, con lo que no deberían existir duplicados. Tras introducir un albarán en TREE deberíamos sellarlo. Sin embargo, en ocasiones, un albarán puede acabar en administración dos veces, ya sea porque el que lo introdujo no lo selló, o porque Leer másTrigger para evitar duplicar albaranes en TREE[…]

Publicada en SQL

IMAGEN en una SELECT

En caso de que queramos incorporar una imagen en una instrucción SELECT de SQL podemos usar la función OPENROWSET. Por ejemplo: SELECT * FROM OPENROWSET(BULK N’X:\Imagenes\Obra002.jpg’, SINGLE_BLOB) AS Imagen Si lo que queremos es generar la lista de imágenes en una tabla, por ejemplo cargar las imágenes en la tabla de artículos de a3ERP podemos Leer másIMAGEN en una SELECT[…]

Publicada en SQL