cancel
Showing results for 
Search instead for 
Did you mean: 

Ayuda en Query

Former Member
0 Kudos

Hola a Todos,

Tengo una consulta sobre facturas de ventas donde existe un campo de usuario denomidado número de serie, el mismo contiene tantos numeros de serie como artículos se hayan vendido, separados por un espacio:

ITEM CANTIDAD NUMERO DE SERIE

ABC 4 TRE1 TRE2 TRE3 TRE4

Necesito una consulta que me de los numeros de serie separados por línea:

ITEM CANTIDAD NUMERO DE SERIE

ABC 1 TRE1

ABC 1 TRE2

ABC 1 TRE3

ABC 1 TRE4

Como podria lograrse esto?

Gracias de antemano por su ayuda.

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member649942
Active Participant
0 Kudos

TRE1 TRE2 TRE3 estan en campos diferentes?

Former Member
0 Kudos

Hola Julián,

Los Números de Serie del ejemplo (TRE1 TRE2 TRE3) se encuentran en un mismo campo de usuario (U_NumSerie), separados por un espacio entre cada uno de ellos.

Gracias de antemano,

Saludos.

Former Member
0 Kudos

En un foro en la web me encontré la siguiente función:

CREATE FUNCTION StringSplit
(
@String AS VARCHAR(2048),
@Separator AS CHAR(1),
@Count AS INT
)
RETURNS TABLE
AS
RETURN
(
SELECT TOP (ISNULL(@Count, 2147483647))
SUBSTRING(
@String,
Number,
CHARINDEX(@Separator, @String + @Separator, Number) - Number
) AS [Substring]
FROM
master..spt_values
WHERE
[Type]='P'
AND Number BETWEEN 1 AND LEN(@String) + 1
AND SUBSTRING(@Separator + @String, Number, 1) = @Separator
)

La forma de utilizar esta función es la siguiente:

SELECT Substring FROM StringSplit('Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo', ',', null);

Con la que obtendremos el siguiente resultado:

Substring

-

-


Lunes

Martes

Miércoles

Jueves

Viernes

Sábado

Domingo

(7 filas afectadas)

Mi pregunta es: ¿Como sería la manera de usar esta función en un query que me traiga todos los campo de usuario que tiene el string separado por espacios para cada articulo que tiene seriales en todas las facturas de un período?, ya que la función usa variables, que dependen de un condicional especifico, o te toma la última fila de un registro.

El campo con el string separado por espacios que requiero separar en filas esta en INV1.U_Seriales.

Gracias de antemano,

Saludos.