DATOS EN UN SOLO CAMPO DE UNA CONSULTA

22/02/2006 - 19:41 por amigo | Informe spam
Hola a todos:

Tengo un consulta sobre 2 tablas , pero debo poner en un campo el contenido
de varios registros de otra tabla
tabla 1
id nombre apellido
1 juan marquez
2 marcelo varas

tabla 2
id curso
1 primero
2 segundo
3 tercero

tabla 3
id curso
1 1
1 3
2 2
debo hacer una consulta con los siguiente campos
nombre apellido curso
juan marques primero, tercero
marcelo varas segundo

como se llama este tipo de consultas ¿anidadas?
gracias,


amigo

Preguntas similare

Leer las respuestas

#1 Noldis Chumacero
22/02/2006 - 20:13 | Informe spam
Amigo,

Lo que necesitas hacer es realizar una Vista, en la cual tengas todas las
tablas referenciadas entre si

SELECT *
FROM Tabla1, Tabla2, Tabla3
AND Tabla1.id = Tabla2.id
AND Tabla2.id = Tabla3.id

No olvides que debes tener itegridad referencial entre tus tablas, es decir
PRIMARY KEY y FOREING KEY

Entonces, revisa la información sobre VISTAS, PRIMARY KEY, FOREING KEY e
JOIN (INNER, LEFT, RIGTH)

Ing. Noldis Chumacero Chávez
Departamento de Sistemas
AeroSur S.A.
Santa Cruz de la Sierra, Bolivia
Telf. 3364446(236) 77074919
"amigo" escribió en el mensaje
news:OIYae%

Hola a todos:

Tengo un consulta sobre 2 tablas , pero debo poner en un campo el
contenido de varios registros de otra tabla
tabla 1
id nombre apellido
1 juan marquez
2 marcelo varas

tabla 2
id curso
1 primero
2 segundo
3 tercero

tabla 3
id curso
1 1
1 3
2 2
debo hacer una consulta con los siguiente campos
nombre apellido curso
juan marques primero, tercero
marcelo varas segundo

como se llama este tipo de consultas ¿anidadas?
gracias,


amigo





Respuesta Responder a este mensaje
#2 amigo
22/02/2006 - 20:17 | Informe spam
Entonces como puedo hacer que muestre esto
nombre apellido curso
juan marques primero, tercero
marcelo varas segundo





osea el problema está en mostrar en una sola fila los cursos separados por
comas
gracias

amigo


"Noldis Chumacero" escribió en el mensaje
news:e9nWOO%

Amigo,

Lo que necesitas hacer es realizar una Vista, en la cual tengas todas las
tablas referenciadas entre si

SELECT *
FROM Tabla1, Tabla2, Tabla3
AND Tabla1.id = Tabla2.id
AND Tabla2.id = Tabla3.id

No olvides que debes tener itegridad referencial entre tus tablas, es
decir PRIMARY KEY y FOREING KEY

Entonces, revisa la información sobre VISTAS, PRIMARY KEY, FOREING KEY e
JOIN (INNER, LEFT, RIGTH)

Ing. Noldis Chumacero Chávez
Departamento de Sistemas
AeroSur S.A.
Santa Cruz de la Sierra, Bolivia
Telf. 3364446(236) 77074919
"amigo" escribió en el mensaje
news:OIYae%

Hola a todos:

Tengo un consulta sobre 2 tablas , pero debo poner en un campo el
contenido de varios registros de otra tabla
tabla 1
id nombre apellido
1 juan marquez
2 marcelo varas

tabla 2
id curso
1 primero
2 segundo
3 tercero

tabla 3
id curso
1 1
1 3
2 2
debo hacer una consulta con los siguiente campos
nombre apellido curso
juan marques primero, tercero
marcelo varas segundo

como se llama este tipo de consultas ¿anidadas?
gracias,


amigo










Respuesta Responder a este mensaje
#3 Noldis Chumacero
22/02/2006 - 21:03 | Informe spam
Amigo,

En ese caso, entonces deberías tener una función la cual concatene los datos
según tu requerimeinto. Supongo que en el cuerpo de tu función tendrias un
cursor el cual navegue tus datos y luego los concatene para obtener lo que
necesitas.

p.e.

CREATE FUNCTION dbo.Concatena(identificador INT)
RETURN VARCHAR(100)
AS
BEGIN
DECLARE @respuesta VARCHAR(100)
DECLARE curCursor CURSOR
READ_ONLY
FOR SELECT curso FROM tabla.dbo.cursos -- Aqui tu consulta completa

DECLARE @name varchar(40)
OPEN curCursor

FETCH NEXT FROM curCursor INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
SET @respuesta = @respuesta + ', ' + @name
END
FETCH NEXT FROM curCursor INTO @name
END
CLOSE curCursor
DEALLOCATE curCursor
RETURN @respuesta
END



Saludos.

Ing. Noldis Chumacero Chávez
Departamento de Sistemas
AeroSur S.A.
Santa Cruz de la Sierra, Bolivia
Telf. 3364446(236) 77074919
"amigo" escribió en el mensaje
news:%23HrYeS%

Entonces como puedo hacer que muestre esto
nombre apellido curso
juan marques primero, tercero
marcelo varas segundo





osea el problema está en mostrar en una sola fila los cursos separados por
comas
gracias

amigo


"Noldis Chumacero" escribió en el mensaje
news:e9nWOO%

Amigo,

Lo que necesitas hacer es realizar una Vista, en la cual tengas todas las
tablas referenciadas entre si

SELECT *
FROM Tabla1, Tabla2, Tabla3
AND Tabla1.id = Tabla2.id
AND Tabla2.id = Tabla3.id

No olvides que debes tener itegridad referencial entre tus tablas, es
decir PRIMARY KEY y FOREING KEY

Entonces, revisa la información sobre VISTAS, PRIMARY KEY, FOREING KEY e
JOIN (INNER, LEFT, RIGTH)

Ing. Noldis Chumacero Chávez
Departamento de Sistemas
AeroSur S.A.
Santa Cruz de la Sierra, Bolivia
Telf. 3364446(236) 77074919
"amigo" escribió en el mensaje
news:OIYae%

Hola a todos:

Tengo un consulta sobre 2 tablas , pero debo poner en un campo el
contenido de varios registros de otra tabla
tabla 1
id nombre apellido
1 juan marquez
2 marcelo varas

tabla 2
id curso
1 primero
2 segundo
3 tercero

tabla 3
id curso
1 1
1 3
2 2
debo hacer una consulta con los siguiente campos
nombre apellido curso
juan marques primero, tercero
marcelo varas segundo

como se llama este tipo de consultas ¿anidadas?
gracias,


amigo















Respuesta Responder a este mensaje
#4 amigo
23/02/2006 - 19:26 | Informe spam
este es el codigo de mi funcion pero o funciona:
CREATE FUNCTION dbo.Concatena(@iddus INT)
RETURN VARCHAR(100)
AS
BEGIN
DECLARE @respuesta VARCHAR(100)
DECLARE curCursor CURSOR
READ_ONLY
FOR SELECT Variedades.NmCortoVariedad AS Variedad
FROM p_Pallets INNER JOIN
Variedades ON p_Pallets.IdVariedad =
Variedades.IdVariedad
WHERE (p_Pallets.IdTblDus = @iddus) -- Aqui tu consulta
completa

DECLARE @name varchar(40)
OPEN curCursor

FETCH NEXT FROM curCursor INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
SET @respuesta = @respuesta + ', ' + @name
END
FETCH NEXT FROM curCursor INTO @name
END
CLOSE curCursor
DEALLOCATE curCursor
RETURN @respuesta
END

y la llamo en un sp
SELECT Embarques.IdEmbarque, YEAR(Embarques.FechaCreacion) AS Expr1,
dbo.Concatena(a_Dus.IdTableDus) AS Variedades

FROM Embarques

no se que puede estar fallando

amigo


"Noldis Chumacero" escribió en el mensaje
news:etqsWx%

Amigo,

En ese caso, entonces deberías tener una función la cual concatene los
datos según tu requerimeinto. Supongo que en el cuerpo de tu función
tendrias un cursor el cual navegue tus datos y luego los concatene para
obtener lo que necesitas.

p.e.

CREATE FUNCTION dbo.Concatena(identificador INT)
RETURN VARCHAR(100)
AS
BEGIN
DECLARE @respuesta VARCHAR(100)
DECLARE curCursor CURSOR
READ_ONLY
FOR SELECT curso FROM tabla.dbo.cursos -- Aqui tu consulta completa

DECLARE @name varchar(40)
OPEN curCursor

FETCH NEXT FROM curCursor INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
SET @respuesta = @respuesta + ', ' + @name
END
FETCH NEXT FROM curCursor INTO @name
END
CLOSE curCursor
DEALLOCATE curCursor
RETURN @respuesta
END



Saludos.

Ing. Noldis Chumacero Chávez
Departamento de Sistemas
AeroSur S.A.
Santa Cruz de la Sierra, Bolivia
Telf. 3364446(236) 77074919
"amigo" escribió en el mensaje
news:%23HrYeS%

Entonces como puedo hacer que muestre esto
nombre apellido curso
juan marques primero, tercero
marcelo varas segundo





osea el problema está en mostrar en una sola fila los cursos separados
por comas
gracias

amigo


"Noldis Chumacero" escribió en el mensaje
news:e9nWOO%

Amigo,

Lo que necesitas hacer es realizar una Vista, en la cual tengas todas
las tablas referenciadas entre si

SELECT *
FROM Tabla1, Tabla2, Tabla3
AND Tabla1.id = Tabla2.id
AND Tabla2.id = Tabla3.id

No olvides que debes tener itegridad referencial entre tus tablas, es
decir PRIMARY KEY y FOREING KEY

Entonces, revisa la información sobre VISTAS, PRIMARY KEY, FOREING KEY e
JOIN (INNER, LEFT, RIGTH)

Ing. Noldis Chumacero Chávez
Departamento de Sistemas
AeroSur S.A.
Santa Cruz de la Sierra, Bolivia
Telf. 3364446(236) 77074919
"amigo" escribió en el mensaje
news:OIYae%

Hola a todos:

Tengo un consulta sobre 2 tablas , pero debo poner en un campo el
contenido de varios registros de otra tabla
tabla 1
id nombre apellido
1 juan marquez
2 marcelo varas

tabla 2
id curso
1 primero
2 segundo
3 tercero

tabla 3
id curso
1 1
1 3
2 2
debo hacer una consulta con los siguiente campos
nombre apellido curso
juan marques primero, tercero
marcelo varas segundo

como se llama este tipo de consultas ¿anidadas?
gracias,


amigo




















email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida