Extraer información específica de una base de datos según determinados criterios

Les cuento mi problema. Tengo una base de datos grande, que tiene información como la que pongo abajo. En la columna A me da la descripción de un código y en algunos casos hay información y en otros no ("none listed"). Cuando hay información, he extraído del texto la cantidad y las he colocado en las columnas H e I. Lo que quiero hacer es que en la columna QUE me salga el nombre de las personas que figuran ahí si es que en el código existen datos. Por ejemplo en este caso el código G*L2626 tiene el nombre de las personas entonces en la columna QUE quisiera que le salga: 1 Espada María J ... Lo mismo sobre el código G*L2655 y así sucesivamente con el resto de la base. ¿Alguien sabe como podría hacer? Ayuda!

Respuesta

Cuando hay información,
He extraído del texto la cantidad y las he colocado en las columnas H e I.
<- En esta parte que colocas, ¿El total o que?, no esta bien especificado o mi cerebro no lo comprende.
Lo que quiero hacer es que en la columna QUE me salga el nombre de las personas que figuran ahí si es que en el código
Existen datos. <- Nuevamente mustras esto segun yo
<- G*L2626 <- Supongo que es el codigo
<- 1 Espada María J <- Es una especie de descripcion,
¿Con esta parte es un campo unico nativo de tu base de datos es se compone de varios campos para formar solo 1?
Asumo el el numero "1", es el total de unidades o piezas segun yo y que posteriormente muestra una descripcion
Del articulo y a se vez el nombre de la persona que lo adquierio o compra, registro etc.

<-Observo esto que solo apica para estos elementos "none listed", ¿aperece un numero PD658 <- que significa? O es irrelevante.

Adjunto query, cabe mencionar que lo tome de referencia de esta pagina

http://www.sqlservercentral.com/blogs/querying-microsoft-sql-server/2013/09/19/how-to-split-a-string-by-delimited-char-in-sql-server/ 

Realice la modificación para que en lugar que te loregrese como registros, lo devuelva como varchar,

Adjunto query

CREATEFUNCTION[dbo].[fnSplitString]

(

@stringNVARCHAR(MAX),

@delimiterCHAR(1)

)

RETURNSNVARCHAR(MAX)

As

BEGIN

declare@ReturnNVARCHAR(MAX),@ValueOutPutnvarchar (max),@NameOuPutvarchar (max)

DECLARE@startINT,@endINT

DECLARE@indiceINT

SET@Return=' '--@ValueOutPutn varchar (max), @NameOuPut varchar (max)

set@ValueOutPutn='Cantidad: '

set@NameOuPut=' Nombre: '

set@start= 1

set@end=CHARINDEX(@delimiter,@string)

SET@indice= 1

WHILE@start<LEN(@string)+ 1 BEGIN

IF@end= 0

SET@end=LEN(@string)+ 1

if@indice=1--{

SET@Return=@ValueOutPutn+SUBSTRING(@string,@start,@end-@start)--10 + @start;

if@indice=3

SET@Return=@Return+@NameOuPut+SUBSTRING(@string,@start,@end-@start)--10 + @start;

SET@Return=@Return

SET@start=@end+ 1

SET@end=CHARINDEX(@delimiter,@string,@start)

SET@indice=@indice+ 1

END

RETURN@return

END

Espero que te sirva...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas