Welcome to Sign in | Help

Re: Pointer in SQL??

  •  05-20-2010, 12:17 PM

    Re: Pointer in SQL??

    Mai jos ai o varianta "muncitoreasca" (copy+paste) dar acest lucru se poate face si prin dinamic sql pt a genera un select si apoi se poate executa... daca raspunsul meu nu te ajuta, am sa te rog sa detaliezi putin (mai mult) problema.

    BEGIN TRAN

    CREATE TABLE A (

    id int IDENTITY(1,1) PRIMARY KEY,

    info nvarchar(100)

    )

    CREATE TABLE B (

    id int IDENTITY(1,1) PRIMARY KEY,

    info nvarchar(100)

    )

    CREATE TABLE C (

    id int IDENTITY(1,1) PRIMARY KEY,

    info nvarchar(100)

    )

    CREATE TABLE D (

    id int IDENTITY(1,1) PRIMARY KEY,

    info nvarchar(100)

    )

    CREATE TABLE E (

    id int IDENTITY(1,1) PRIMARY KEY,

    tabela nvarchar(100),

    pk_in_tabela int

    )

    INSERT INTO A(info)

    VALUES ('A1'), ('A2')

    INSERT INTO B(info)

    VALUES ('B1'), ('B2')

    INSERT INTO C(info)

    VALUES ('C1'), ('C2')

    INSERT INTO D(info)

    VALUES ('D1'), ('D2')

    INSERT INTO E(tabela, pk_in_tabela)

    VALUES ('A',1), ('B', 1), ('C', 2), ('D', 2)

    DECLARE @i int, @CountOfE int

    SELECT @i = 1,

    @CountOfE = MAX(id)

    FROM E

    WHILE @i<= @CountOfE BEGIN

    SELECT E.*, COALESCE(A.info, b.info, c.info, d.info) AS TableInfo

    FROM E

    LEFT JOIN A ON E.pk_in_tabela = A.id AND E.tabela = 'A'

    LEFT JOIN B ON E.pk_in_tabela = B.id AND E.tabela = 'B'

    LEFT JOIN C ON E.pk_in_tabela = C.id AND E.tabela = 'C'

    LEFT JOIN D ON E.pk_in_tabela = D.id AND E.tabela = 'D'

    WHERE e.id = @i

    SET @i = @i + 1

    END

    ROLLBACK


    Cătălin D.
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems