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

एक कॉलम में एकाधिक पंक्तियों से तारों को कैसे जोड़ना है + एक क्वेरी में आंतरिक शामिल हों

यहाँ कार्यशील SQL Fiddle है:http://sqlfiddle.com/#!3/3597a/3

यहाँ वास्तविक कार्यशील SQL है।

SELECT Tasks.TaskId, SUBSTRING(
(SELECT ',' + Comments.Comment
FROM Comments
INNER JOIN tasks ON comments.entityid = tasks.taskid
FOR XML PATH('')),2,200000) AS Comments
, SUM(comments.timespent) AS TimeSpent      
FROM   comments
INNER JOIN tasks ON comments.entityid = tasks.taskid                
WHERE  ( comments.entity = 1 ) 
GROUP  BY Tasks.TaskId

टेबल बनाएं और डेटा पॉप्युलेट करें

CREATE TABLE Tasks
(
  TaskID NVARCHAR(20) NOT NULL,
);

CREATE TABLE Comments
( 
  Entity  INT NOT NULL,
  EntityID NVARCHAR(20) NOT NULL,
  Comment NVARCHAR(50) NOT NULL,
  TimeSpent INT NOT NULL
);


INSERT INTO Tasks VALUES
( '111754' );

INSERT INTO Comments VALUES
(1,'111754', 'C1',4 ),
(1,'111754', 'C2',1 ),
(1,'111754', 'C3',79 );

एसक्यूएल निष्पादित करें

SELECT Tasks.TaskId, SUBSTRING(
(SELECT ',' + Comments.Comment
FROM Comments
INNER JOIN tasks ON comments.entityid = tasks.taskid
FOR XML PATH('')),2,200000) AS Comments
, SUM(comments.timespent) AS TimeSpent     
FROM   comments
INNER JOIN tasks ON comments.entityid = tasks.taskid                
WHERE  comments.entity = 1 
GROUP  BY Tasks.TaskId

परिणाम देखें।

TASKID  COMMENTS    TIMESPENT
111754  C1,C2,C3    84


  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 सर्वर एजेंट कार्य संशोधित करें (T-SQL)

  2. SQL सर्वर स्कीमा और डिफ़ॉल्ट स्कीमा

  3. दो SQL स्क्रिप्ट का उपयोग मर्ज करें यदि स्थिति चयन क्वेरी में है

  4. क्या सीटीई का उपयोग करके कॉलम मानों को एक स्ट्रिंग में जोड़ना संभव है?

  5. दूसरे कंप्यूटर से sql सर्वर 2008 को कनेक्ट नहीं कर सकता