Principales respuestas
desplegar el resultado en forma horizontal

Pregunta
-
Respuestas
-
Hola Gilberto:
DECLARE @VARTABLE TABLE (ID INT , NUMERO nvarchar(100), importe DECIMAL(10,2)) INSERT INTO @VARTABLE (ID, NUMERO, importe) VALUES (1,'10',10.15), (1,'11',20.10), (1,'16',30.15), (2,'24',17.15), (2,'30',24.36), (2,'36',15.25); SELECT RESULT.ID, CONCAT(RESULT.INTERIOR,',',RESULT.IMPORTES) AS NUMERO FROM ( SELECT ID, STUFF( ( SELECT ', '+NUMERO FROM @VARTABLE V WHERE V.ID =EXTERIOR.ID FOR XML PATH('') ), 1, 1, '') AS INTERIOR, STUFF( ( SELECT ', '+CAST( IMPORTE AS NVARCHAR(15)) FROM @VARTABLE V WHERE V.ID =EXTERIOR.ID FOR XML PATH('') ), 1, 1, '') AS IMPORTES FROM @VARTABLE AS EXTERIOR GROUP BY ID ) AS RESULT
Salida- Marcado como respuesta GILBERTO SANTA R martes, 30 de abril de 2019 16:42
Todas las respuestas
-
-
Hola Gilberto Santa R:
Puedes utilizar stuff y for xml path
DECLARE @VARTABLE TABLE (ID INT , NUMERO INT) INSERT INTO @VARTABLE (ID, NUMERO) VALUES (1,10), (1,11), (1,16), (2,24), (2,30), (2,36); SELECT ID, STUFF( ( SELECT ', '+CAST(NUMERO AS VARCHAR(10)) FROM @VARTABLE V WHERE V.ID =EXTERIOR.ID FOR XML PATH('') ), 1, 1, '') AS INTERIOR FROM @VARTABLE AS EXTERIOR GROUP BY ID
Salida
Stuff
https://docs.microsoft.com/es-es/sql/t-sql/functions/stuff-transact-sql?view=sql-server-2017
For Xml https://docs.microsoft.com/es-es/sql/relational-databases/xml/for-xml-sql-server?view=sql-server-2017
- Propuesto como respuesta Carlos_Ruiz_M viernes, 3 de mayo de 2019 18:19
-
-
Hola Gilberto Santa R:
Es casi indiferente.
DECLARE @VARTABLE TABLE (ID INT , NUMERO nvarchar(100)) INSERT INTO @VARTABLE (ID, NUMERO) VALUES (1,'10'), (1,'11'), (1,'16'), (2,'24'), (2,'30'), (2,'36'); SELECT ID, STUFF( ( SELECT ', '+NUMERO FROM @VARTABLE V WHERE V.ID =EXTERIOR.ID FOR XML PATH('') ), 1, 1, '') AS INTERIOR FROM @VARTABLE AS EXTERIOR GROUP BY ID
- Propuesto como respuesta Carlos_Ruiz_M viernes, 3 de mayo de 2019 18:19
-
MUCHAS GRACIAS POR SU APOYO
UNA ULTIMA DUDA DE ESTE TEMA:
EN ESTE CASO EL 'NUMERO' VIENE SIENDO EL 'CODIGO DE PAGO', AHORA NECESITO ANTEPONER EL IMPORTE DEL 'NUMERO'.
EJEMPLO:
ID NUMERO IMPORTE
1 10,11,16,10.15.20,10.23.08
2 24,30,36,45.20,80.35,89.23
ES DECIR:
EL ID 1 DEL NUMERO 10 TIENE UN IMPORTE DE 10.15
EL ID 1 DEL NUMERO 11 TIENE UN IMPORTE DE 20.10
EL ID 1 DEL NUMERO 16 TIENE UN IMPORTE DE 23.08
Y
EL ID 2 DEL NUMERO 24 TIENE UN IMPORTE DE 45.20
EL ID 2 DEL NUMERO 30 TIENE UN IMPORTE DE 80.35
EL ID 2 DEL NUMERO 36 TIENE UN IMPORTE DE 89.23
DECLARE @VARTABLE TABLE (ID INT , NUMERO nvarchar(100),IMPORTE MONEY ) INSERT INTO @VARTABLE (ID, NUMERO,IMPORTE) VALUES (1,'10',10.15), (1,'11',20.10), (1,'16',23.08), (2,'24',45.20), (2,'30',80.35), (2,'36',89.23);
-
Hola Gilberto:
DECLARE @VARTABLE TABLE (ID INT , NUMERO nvarchar(100), importe DECIMAL(10,2)) INSERT INTO @VARTABLE (ID, NUMERO, importe) VALUES (1,'10',10.15), (1,'11',20.10), (1,'16',30.15), (2,'24',17.15), (2,'30',24.36), (2,'36',15.25); SELECT RESULT.ID, CONCAT(RESULT.INTERIOR,',',RESULT.IMPORTES) AS NUMERO FROM ( SELECT ID, STUFF( ( SELECT ', '+NUMERO FROM @VARTABLE V WHERE V.ID =EXTERIOR.ID FOR XML PATH('') ), 1, 1, '') AS INTERIOR, STUFF( ( SELECT ', '+CAST( IMPORTE AS NVARCHAR(15)) FROM @VARTABLE V WHERE V.ID =EXTERIOR.ID FOR XML PATH('') ), 1, 1, '') AS IMPORTES FROM @VARTABLE AS EXTERIOR GROUP BY ID ) AS RESULT
Salida- Marcado como respuesta GILBERTO SANTA R martes, 30 de abril de 2019 16:42
-