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

Kumpulan pengelompokan:tampilkan subtotal di kolom spesifik lainnya?

Saya setuju dengan Jamie Anda mungkin ingin subtotal ditangani secara visual di lapisan yang berbeda, tetapi yang mungkin ingin Anda coba adalah menggunakan GROUPING() fungsi pada kolom. Fungsi ini mengembalikan 1 jika merupakan bagian dari GROUPING SETS subtotal, dan 0 jika kolom biasa. http://technet.microsoft.com/en- us/library/ms178544(SQL.90).aspx

Saya menyertakan data sampel yang saya uji. Hapus WITH emp_test AS () pertama saat Anda menggunakan pernyataan pilih.

Data Pengujian Saya:

WITH emp_test AS
(
   SELECT 10 AS DEPTNO, 7782 AS EMPNO, 20000 AS sal
   UNION ALL SELECT 10, 7839, 10000
   UNION ALL SELECT 20, 7566, 5950
   UNION ALL SELECT 20, 7788, 6000
)

Jawaban untuk mendapatkan Subtotal pada kolom terpisah:

SELECT deptno, empno
   , CASE
      WHEN GROUPING(empNo) = 1 THEN null
      ELSE SUM(sal)
     END as sum_salary
   , CASE
      WHEN GROUPING(empno) = 1 THEN SUM(sal)
      ELSE NULL
     END AS SubTotal
FROM emp_test
GROUP BY GROUPING SETS (DeptNo, Empno), (DeptNo)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. exec gagal karena namanya bukan pengidentifikasi yang valid?

  2. Kueri Sql untuk menghasilkan tanggal pembayaran bulanan dalam rentang tanggal

  3. Bagaimana Mengidentifikasi duplikasi kunci utama dari kode kesalahan SQL Server 2008?

  4. Gunakan OBJECT_NAME() untuk Mendapatkan Nama Objek dari object_id-nya di SQL Server

  5. Bagaimana memulihkan database dari MDF di SQL Server 2005?