on 11-02-2011 8:58 PM
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.
TRE1 TRE2 TRE3 estan en campos diferentes?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.