09/04/2008, 09:52
|
| | | Fecha de Ingreso: agosto-2004 Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 20 años, 4 meses Puntos: 6 | |
Re: Sacar nombre de campo Algo asi creo q te podrias servir: Cita: CREATE DATABASE PRUEBA_SQL
GO
USE PRUEBA_SQL
GO
CREATE TABLE Asignatura( INTID INT,
VARNOMBRE VARCHAR(100))
CREATE TABLE Relacion( INTID INT,
INTRELACIONADO VARCHAR(100))
INSERT INTO Asignatura VALUES( 1, 'Numero1' )
INSERT INTO Asignatura VALUES( 2, 'Numero2' )
INSERT INTO Asignatura VALUES( 3, 'Numero3' )
INSERT INTO Asignatura VALUES( 4, 'Numero4' )
INSERT INTO Asignatura VALUES( 5, 'Numero5' )
INSERT INTO Asignatura VALUES( 6, 'Numero6' )
INSERT INTO Asignatura VALUES( 7, 'Numero7' )
INSERT INTO Asignatura VALUES( 8, 'Numero8' )
INSERT INTO Asignatura VALUES( 9, 'Numero9' )
INSERT INTO Asignatura VALUES( 10, 'Numero10' )
INSERT INTO Relacion VALUES( 2, 1 )
INSERT INTO Relacion VALUES( 2, 3 )
INSERT INTO Relacion VALUES( 2, 4 )
INSERT INTO Relacion VALUES( 4, 1 )
INSERT INTO Relacion VALUES( 5, 1 )
INSERT INTO Relacion VALUES( 5, 2 )
INSERT INTO Relacion VALUES( 5, 3 )
CREATE FUNCTION DBO.OBTENERCADENA( @INTID INT)
RETURNS VARCHAR(8000)
BEGIN
DECLARE @VARCHAR VARCHAR(8000)
SET @VARCHAR = ''
SELECT @VARCHAR = @VARCHAR + A.VARNOMBRE + ','
FROM Asignatura A INNER JOIN Relacion R
ON A.INTID = R.INTRELACIONADO
WHERE R.INTID = @INTID
IF @VARCHAR <> ''
IF RIGHT(@VARCHAR,1) = ','
SET @VARCHAR = SUBSTRING(@VARCHAR, 0, LEN(@VARCHAR) - 1 )
RETURN @VARCHAR
END
SELECT INTID, VARNOMBRE, NOMBRERELACION = DBO.OBTENERCADENA(INTID)
FROM Asignatura
Saludos
__________________ Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD |