none
Unir tres columnas (DATE) en una nueva columna SQL server 2019 RRS feed

  • Pregunta

  • Hola a todos. Tengo tres campos DATE de tres tablas Tbl_OtraOperacion.FechaOO, Tbl_FacturaCompra.FechaCompra y Tbl_FacturaVenta.FechaVenta. Ahora necesito en una columna nueva calculada unir las fechas en formato DATE para generar un informe que me une las tres tablas. Ya lo logrè con los valores de Ventas, Compras y Otras O. con algo asì: 

    ISNULL(Tbl_FacturaCompra.Neto, '0.0') + ISNULL(Tbl_FacturaVenta.Neto, '0.0') + ISNULL(Tbl_OtraOperacion.NetoOO, '0.0') AS Valor y me sale muy bien, pero con las fechas tengo líos. Necesito su colaboración. Gracias de antemano.

    miércoles, 1 de julio de 2020 21:47

Todas las respuestas

  •   

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comparto el siguiente enlace que contiene un documento oficial de la funcion CONCAT que podría ayudarte a unir las columnas DATE.

    https://docs.microsoft.com/en-us/sql/t-sql/functions/concat-transact-sql?view=sql-server-ver15

      

    Seguimos buscando una mejor solución a tu consulta 

    Gracias por usar los foros de MSDN. 

      

    Eric Ruiz 

     ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    miércoles, 1 de julio de 2020 23:03
  • Hola Antonio Malonso:

    Hay dos partes diferentes en la pregunta que planteas.

    Una es la concatenación de las columnas tipo date, y otra el formato de salida de las fechas.

    Te expongo un ejemplo, creando una variable de tabla, y alimentando la misma con varias fechas. Tanto en formato yyyyMMdd, como con null, y con la función Getdate(). Como las fechas se almacenan en binario, es indiferente, como las guarde, pero tiene especial importancia, el como las resuelva la select.

    DECLARE @FECHAS TABLE (ID INT IDENTITY(1,1), FECHAOO DATE, FECHACOMPRA DATE, FECHAVENTA DATE)
    INSERT INTO @FECHAS (FECHAOO, FECHACOMPRA, FECHAVENTA )
    VALUES
    ('20200601','20200701','20200701'),
    ('20200601',null,GETDATE()),
    ('20200601','20200701','20200702'),
    ('20200601',GETDATE(),GETDATE());
    
    SELECT *, 
    	CONCAT(FECHAOO,';', FECHACOMPRA,';', FECHAVENTA) AS Concatenadas,
    	FORMAT(FECHAOO,    'd','en-US') as enUs,
    	FORMAT(FECHACOMPRA,'d','de-de') as deDe,
    	FORMAT(FECHAVENTA, 'd','es-es') as esEs,
    	CONCAT((FORMAT(FECHAOO,    'd','en-US')),';', (FORMAT(FECHACOMPRA,'d','en-US')),';', (FORMAT(FECHAVENTA, 'd','en-US'))) AS CCFEnUs,
    	CONCAT((FORMAT(FECHAOO,    'd','de-de')),';', (FORMAT(FECHACOMPRA,'d','de-de')),';', (FORMAT(FECHAVENTA, 'd','de-de'))) AS CCFDeDe,
    	CONCAT((FORMAT(FECHAOO,    'd','es-es')),';', (FORMAT(FECHACOMPRA,'d','es-es')),';', (FORMAT(FECHAVENTA, 'd','es-es'))) AS CCFEsEs
    
    FROM @FECHAS

    Lo importante es como quieres obtener la salida de las columnas date, porque para concatenarlas hay que convertirlas a caracteres.

    Concatenar cadenas

    https://javifer2.wordpress.com/2020/02/02/sql-server-concatenar-cadenas/

    jueves, 2 de julio de 2020 6:38