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

Masalah permintaan Sql Server2005

Anda dapat menggunakan CTE Rekursif .

Sesuatu seperti ini

DECLARE @Table TABLE(
        Supervisorid INT,
        Empid INT
)

INSERT INTO @Table SELECT 3, 4
INSERT INTO @Table SELECT 3, 5
INSERT INTO @Table SELECT 3, 8

INSERT INTO @Table SELECT 4, 9
INSERT INTO @Table SELECT 4, 10
INSERT INTO @Table SELECT 4, 11

INSERT INTO @Table SELECT 8, 12
INSERT INTO @Table SELECT 8, 13

DECLARE @ID INT
SELECT  @ID = 3

;WITH Vals AS (
        SELECT  *
        FROM    @Table
        WHERE   SuperVisorID = @ID
        UNION ALL
        SELECT  v.SuperVisorID,
                t.Empid
        FROM    Vals v INNER JOIN
                @Table t    ON  v.Empid = t.Supervisorid
)
SELECT  SuperVisorID,
        COUNT(Empid) Total
FROM    Vals
GROUP BY    SuperVisorID



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyebarkan Sertifikat untuk Koneksi Terenkripsi SQL Server

  2. Sql Server - Dapatkan Id dari baris yang dijumlahkan

  3. Pengambilan sampel acak dari kumpulan data besar

  4. Buat Kolom Terhitung yang Menggunakan Data dari Tabel Lain di SQL Server

  5. T-SQL ANTARA masalah nilai maks terlebih dahulu