Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menggabungkan lebih dari dua tabel secara horizontal di SQL Server

Sepertinya Anda mencoba menetapkan pinjaman "secara berurutan" ke baris di tabel keluarga. Pendekatan untuk menyelesaikannya adalah pertama-tama mendapatkan baris yang benar, lalu mendapatkan pinjaman yang diberikan ke baris.

Baris kanan (dan tiga kolom pertama) adalah:

select f.EmpId, e.Name, f.Relationship
from family f join
     Employee e
     on f.empid = e.empid;

Perhatikan bahwa ini tidak menempatkan tanda hubung di kolom untuk nilai berulang, ini memasukkan nilai sebenarnya. Meskipun Anda dapat mengatur tanda hubung dalam SQL, itu adalah ide yang buruk. Hasil SQL dalam bentuk tabel, yang merupakan kumpulan tidak berurutan dengan nilai untuk setiap kolom dan setiap baris. Saat Anda mulai memasukkan tanda hubung, Anda bergantung pada urutannya.

Sekarang masalahnya adalah bergabung dalam pinjaman. Ini sebenarnya cukup mudah, dengan menggunakan row_number() untuk menambahkan join kunci:

select f.EmpId, e.Name, f.Relationship, l.LoanId
from Employee e left join
     (select f.*, row_number() over (partition by f.EmpId order by (select NULL)) as seqnum
      from family f
     ) f 
     on f.empid = e.empid left join
     (select l.*, row_number() over (partition by l.EmpId order by (select NULL)) as seqnum
      from Loan l
     ) l
     on f.EmpId = l.EmpId and f.seqnum = l.seqnum;

Perhatikan bahwa ini tidak menjamin urutan pemberian pinjaman untuk karyawan tertentu. Data Anda tampaknya tidak memiliki informasi yang cukup untuk menangani tugas yang lebih konsisten.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C# clr udf untuk keanggotaan grup Direktori Aktif

  2. Buat Fungsi Bernilai Tabel Sebaris (ITVF) di SQL Server

  3. Bagaimana cara mendapatkan id yang terakhir dimasukkan?

  4. Menyertakan Tabel &Skema saat Mendaftar Kolom Identitas di Database SQL Server

  5. Bagaimana cara mengelompokkan setiap minggu hingga enam minggu terakhir tanggal minggu di sql?