Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

समूहीकरण सेट:अन्य विशिष्ट कॉलम में उप-योग प्रदर्शित करें?

मैं जेमी से सहमत हूं कि आप चाहते हैं कि उप-योग एक अलग परत में नेत्रहीन रूप से संभाला जाए, लेकिन आप जो कोशिश करना चाहते हैं वह GROUPING() का उपयोग कर रहा है कॉलम पर कार्य करें। यह फ़ंक्शन 1 लौटाता है यदि यह GROUPING SETS का हिस्सा है उप-योग, और 0 यदि यह एक नियमित स्तंभ है। http://technet.microsoft.com/en- us/लाइब्रेरी/ms178544(SQL.90).aspx

मैंने उस नमूना डेटा को शामिल किया जिसके साथ मैंने परीक्षण किया था। पहला WITH emp_test AS () हटाएं जब आप सेलेक्ट स्टेटमेंट का इस्तेमाल करते हैं।

मेरा परीक्षण डेटा:

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
)

उप-योग को अलग कॉलम पर प्राप्त करने के लिए उत्तर:

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. SQL सर्वर 2008 IIF कथन सक्षम नहीं लगता है

  2. प्रक्रिया या कार्य !!! बहुत सारे तर्क निर्दिष्ट हैं

  3. Trusted_Connection=true और SQL सर्वर प्रमाणीकरण का उपयोग करते समय, क्या यह प्रदर्शन को प्रभावित करेगा?

  4. सशर्त WHERE स्टेटमेंट SQL सर्वर

  5. एमएस एसक्यूएल सर्वर में संचयी कुल