Welcome to Sign in | Help
in Search

Select din 2 baze, utilizand o tabela din prima si mai multe din a 2-a

Last post 11-30-2010, 1:10 PM by Diana. 3 replies.
Sort Posts: Previous Next
  •  11-25-2010, 3:08 PM 8516

    Select din 2 baze, utilizand o tabela din prima si mai multe din a 2-a

    Salut!
    Am nevoie de ajutor pentru a face un select sau ce s-o putea.

    Am doua baze,prima Application am o tabela CLIENTI cu ID,Nume,Prenume,Adresa,Departament,Functie
    in a 2-a numita LOGURI (am mai multe tablele in care se tin logurile pentru clienti) tabelele au denumirea de tipul
    LogUser012009,LogUser022009 ..... LogUser122009,LogUser012010 ... etc. Deci o tabela cu loguri pt fiecare luna. Tabele de loguri au
    urmatoarele campuri id_user(acesta este id-ul din  APPLICATION.Clienti), IP,Data,Action,Date,Mesaj

    Doresc sa fac un inner JOIN de genul
    select b.id_user,b.IP,b.Data,b.Action,b.Date,a.Nume,a.Prenume,a.Departament
    Application.Clienti as a inner join LOGURI.@logtable as b on a.id=b.id_user

    in loc de parametrul @logtables sa se faca joinul automat pentru fiecare tabele din baza LOGURI, sa fac o variabila sa-mi citeasca din:
    use LOGURI select name from sys.tables where name like 'LogUser%'.

    In concluzie vreau sa extrag informatiile din toate tabelele de loguri pentru o persoana si sa afisez in acelasi timp si numele,functia etc.


    Ca sa fac o analogie ceva de genul comenzi FOR din command line.

    Multumesc mult.
  •  11-25-2010, 3:27 PM 8517 in reply to 8516

    Re: Select din 2 baze, utilizand o tabela din prima si mai multe din a 2-a

    Eu aş zice să faci un view cu UNION ALL-uri (sau o tabelă) în care reuneşti toate tabelele de log-uri, iar apoi să faci join cu acest view/tabelă.

    Ca să creezi view-ul poţi să scrii ceva de genul:

    SELECT 'UNION ALL SELECT * FROM '+name FROM sys.tables WHERE name LIKE 'LogUser%'

    iar apoi copiezi rezultatul obţinut şi modifici primul "UNION ALL" în "CREATE VIEW LogUserAll AS" sau în "CREATE TABLE LogUserAll (...) INSERT INTO LogUserAll", după preferinţă.

    Răzvan
  •  11-26-2010, 8:36 AM 8518 in reply to 8517

    Re: Select din 2 baze, utilizand o tabela din prima si mai multe din a 2-a

    Eu vreau sa fac un inner join intre o tabela din prima baza si o alta tabela din a2-a baza, din prima baza extrag numele,prenumele..etc din a2-a informatiile legate de log. As fi dorit ca prima tabela sa ramana mereu aceiasi in timp de a-2a tabela sa fie un parametru care sa fie mereu extras dintr-o lista. Asa cum spui cand o sa am o tabela noua pentru o luna o sa trebuiasca sa reiau mereu toti pasii.
    Multumesc pentru ajutor.
  •  11-30-2010, 1:10 PM 8526 in reply to 8518

    Re: Select din 2 baze, utilizand o tabela din prima si mai multe din a 2-a

    In acest caz poti folosi "dynamic SQL".
    Ca sa eviti "cross database ownership chaining" ar fi bine sa pastrezi si logurile in aceeasi baza de date, de exemplu intr-o alta schema (daca lucrezi pe SQL 2005 sau later).
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems