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

पिवोटेड कॉलम का योग कैसे करें और इसे दूसरे पिवोटेड कॉलम में कैसे जोड़ें

आपको कुल कॉलम फ़ील्ड की गणना करनी चाहिए, यानी यह पिवट कॉलम की सूची में नहीं है।

डेटा

create table #CheckInCheckOut(Id int identity(1,1),UserId_Fk int,CountHours varchar(50),[Day] varchar(50))
INSERT INTO #CheckInCheckOut(UserId_Fk,CountHours,[Day]) VALUES
(1,'2','Sunday'),(1,'2','Monday'),(1,'2','Tuesday'),(1,'2','Wednesday'),(1,'2','Thursday'),(1,'2','Friday'),(1,'2','Saturday')
,(2,'3','Sunday'),(2,'3','Monday'),(2,'3','Tuesday'),(2,'3','Wednesday'),(2,'3','Thursday'),(2,'3','Friday'),(2,'3','Saturday')
,(3,'3','Sunday'),(3,'3','Monday'),(3,'3','Tuesday'),(3,'3','Wednesday'),(3,'3','Thursday'),(3,'3','Friday'),(3,'3','Saturday')


create table #Users(UserId int identity(1,1),FullName varchar(50))
INSERT #Users(FullName) values('Abdul'),('khan'),('Tariq')

कुल भी खोजने की क्वेरी:

select FullName
,[Sunday] = SUM([Sunday])
,[Monday] = SUM([Monday])
,[Tuesday] = SUM([Tuesday])
,[Wednesday] = SUM([Wednesday])
,[Thursday] = SUM([Thursday])
,[Friday] = SUM([Friday])
,[Saturday] = SUM([Saturday])
, Total= SUM([Sunday]+[Monday]+[Tuesday]+[Wednesday]+[Thursday]+[Friday]+[Saturday])
   from  
   (Select UserId_Fk,ISNULL(CAST(CountHours as decimal(18,2)),0)as CountHours,[Day] 
   from #CheckInCheckOut)
    as convertedtable
    inner join #Users
    on convertedtable.UserId_Fk=#Users.UserId
 PIVOT
(
 SUM(CountHours) 
 FOR Day
 IN([Sunday],[Monday],[Tuesday],[Wednesday],[Thursday],[Friday],[Saturday])
)
as PivotTable
GROUP BY FullName

आउटपुट

इसके अलावा यदि आप कुल क्षैतिज और लंबवत दोनों चाहते हैं तो प्रतिस्थापित करें:

 --GROUP BY FullName
GROUP BY ROLLUP(FullName);

अधिक फॉलो लिंक के लिए https://stackoverflow.com/a/17142530/1915855

DROP TABLE #CheckInCheckOut
DROP TABLE #Users


  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 सर्वर में डेटाबेस कैसे बनाएं

  2. एसक्यूएल सर्वर सीटीई - प्रत्येक बच्चे के लिए शीर्ष पेरेंट आईडी खोजें?

  3. प्राथमिक कुंजी आईडी के साथ क्या होता है जब यह सीमा से अधिक हो जाता है?

  4. SQL सर्वर में XML सम्मिलित करते समय एन्कोडिंग त्रुटि को स्विच करने में असमर्थ कैसे हल करें?

  5. शून्य को शून्य से बदलना