Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Nhóm các tập hợp:hiển thị tổng phụ trong cột cụ thể khác?

Tôi đồng ý với Jamie rằng bạn có thể muốn các tổng phụ được xử lý trực quan trong một lớp khác, nhưng những gì bạn có thể muốn thử là sử dụng GROUPING() chức năng trên cột. Hàm này trả về 1 nếu nó là một phần của GROUPING SETS tổng phụ và 0 nếu nó là một cột thông thường. http://technet.microsoft.com/en- us / library / ms178544 (SQL.90) .aspx

Tôi đã bao gồm dữ liệu mẫu mà tôi đã thử nghiệm. Xóa WITH emp_test AS () đầu tiên khi bạn sử dụng câu lệnh select.

Dữ liệu thử nghiệm của tôi:

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
)

Trả lời để nhận Tổng phụ trên cột riêng biệt:

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. Xóa thư cơ sở dữ liệu khỏi cơ sở dữ liệu msdb trong SQL Server (T-SQL)

  2. Chọn / Chèn phiên bản Nâng cấp:có mẫu thiết kế cho tính đồng thời cao không?

  3. Làm thế nào để ép chuỗi con SQL thành số thập phân?

  4. chuyển đổi varchar thành ngày tháng và trừ nó vào một ngày khác

  5. Chia một cột thành nhiều hàng