SQL - Sumar texto

 
Vista:

Sumar texto

Publicado por Gisell (1 intervención) el 13/05/2005 23:57:04
Por favor, si alguien tiene una solucion que me resuelva este problema se lo voy a agradecer. Sucede que tengo una relacion de 1 a muchos entre dos tablas y quiero hacer una consulta que me devuelva la llave de la tabla 1 y en otro campo una concatenacion de todos los valores de un campo (texto) de la otra tabla (muchos) que se relacionan con la tabla.
Por ejemplo:
T1: estudiante
CAMPO TYPE
id int
nombre char(10)

T2: notas
CAMPO TYPE
id int
nota char(2)

y yo quiero que el resultado del query sea una tabla asi:
(una columna con el id del estudiante y otra con todas las notas)

(id) (notas)
1 E, MB, E, R, MB
2 MB, R, MB, E, B

Muchas gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sumar texto

Publicado por Isaías Islas (5072 intervenciones) el 14/05/2005 00:44:52
Se dice CONCATENAR valores (de cadena o string), ¿podrias decirme si funciona?

DECLARE @NOTAS VARCHAR(100)
SELECT a.ID, a.NOMBRE, b.@NOTAS
FROM T1 a JOIN (SELECT ID, @NOTAS = @NOTAS + NOTA FROM T2 GROUP BY ID) AS b
ON a.ID = b.ID
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sumar texto

Publicado por trazom (8 intervenciones) el 16/05/2005 23:14:17
La respuesta anterior esta mal. No hace lo que pide la pregunta.
Ese listado no se puede resolver en una consulta sql.
Tienes que usar plsql
Hay que leer bien lo que se pregunta y pensar antes de contestar.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sumar texto

Publicado por Isaías Islas (5072 intervenciones) el 17/05/2005 01:28:13
Tal vez estoy perdiendo mi habilidad para LEER LOS TEXTOS, ¿podrias ayudarme?, ¿Donde dice que debe ser con PLSQL? (tambien, no dice que deba ser con SQL ANSI, lo admito)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sumar texto

Publicado por trazom (8 intervenciones) el 17/05/2005 17:23:35
Simplemente lo que digo es que esa consulta no se puede resolver utilizando una unica sentencia sql. No importa si es sql ansi, sql de oracle, el de sybase o el que fuera). Se necesita utilizar un lenguaje procedural con sql. No importa si es plsql, t-sql, e-sql o un procedimiento en c.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

QUE BUENA

Publicado por TRAZOM (1 intervención) el 17/05/2005 19:06:52
QUE BUENA TRAZOM POR FIN ALGUIEN LO DESTITUYO Y BAJO DE LAS NUBES A ESE TAL ISAIAS PESCADOR!! POR FIN.
CHUPATE ESA ISAIAS ELIAS PESCADOR!!!!!!!!

JAJA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:QUE BUENA

Publicado por Isaías Islas (5072 intervenciones) el 17/05/2005 19:42:10
Mi estimado ANONIMO (ahora te ocultas en la cuenta de los demas), no soy ELIAS, soy ISLAS, claro, aunque se que no te importa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:QUE BUENA

Publicado por Gisell (1 intervención) el 17/05/2005 20:08:13
gracias TRAZOM
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:QUE BUENA

Publicado por jaja (4 intervenciones) el 17/05/2005 20:10:11
te callo bien feo trazom ah!! acepta perder pues pescador mejor te llamo.
orale.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:QUE BUENA

Publicado por Isaías Islas (5072 intervenciones) el 18/05/2005 01:10:23
autant de plaisir peut accumuler une personne qui se consacre à perdre le temps et critiquer à ses ressemblances sans aucune raison
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

for fisherman

Publicado por jaja (4 intervenciones) el 18/05/2005 17:03:38
fisherman you are pedantic, a crazy one that stops put in the Web son of p#%&@
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

espero te sirva

Publicado por Victor //:-) (38 intervenciones) el 17/05/2005 23:26:35
Peticion: Gisell [email protected]
/*T1: estudiante
CAMPO TYPE
ident int
nombre char(10)

T2: notas
CAMPO TYPE
ident int
nota char(2)
*/
--declaras variables locales
declare @ident int , @nota varchar(2) ,@todaslasnotas varchar(100)

--creas una tabla temporal
create table #tempo(ident int null, todas varchar(100) null )

--lee todos estudiantes
DECLARE Cursor_estudiante CURSOR FOR
SELECT ident
FROM estudiante

OPEN Cursor_estudiante
if @@CURSOR_ROWS>0
begin

FETCH NEXT FROM Cursor_estudiante INTO @ident

WHILE @@FETCH_STATUS = 0
BEGIN

select @todaslasnotas=''
--lee todas las notas de un estudiante
DECLARE Cursor_de_notas CURSOR FOR
SELECT nota
FROM notas
WHERE ident = @ident

OPEN Cursor_de_notas
if @@CURSOR_ROWS>0
begin
select @todaslasnotas = ''

FETCH NEXT FROM Cursor_de_notas INTO @nota

WHILE @@FETCH_STATUS = 0
BEGIN
select @todaslasnotas = @todaslasnotas + @nota+','
FETCH NEXT FROM Cursor_de_notas INTO @nota
END ---@@FETCH_STATUS = 0

select @todaslasnotas = left(@todaslasnotas,len(@todaslasnotas)-1)+'.'
end
else
begin
select @todaslasnotas = 'No tiene notas.'
end
CLOSE Cursor_datos
DEALLOCATE Cursor_datos
---resultados por estudiante
select @ident,@todaslasnotas,'<<<<<<<< aqui se muestra uno por uno'
INSERT #tempo VALUES (@ident,@todaslasnotas)

FETCH NEXT FROM Cursor_estudiante INTO @ident
end ----@@FETCH_STATUS = 0
end ----@@CURSOR_ROWS>0

CLOSE Cursor_estudiante
DEALLOCATE Cursor_estudiante

--se muestran todos los encontrados
select *
from #tempo

drop table #tempo
--eof
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar