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

SQL सर्वर में रिकॉर्ड में परिवर्तन कैसे ट्रैक करें?

इसका एक तरीका ROW_NUMBER . का उपयोग करना है विभाजन के साथ कार्य यह पता लगाने के लिए कि Department . का मान कब है स्तंभ परिवर्तन।

नमूना डेटा

DECLARE @T TABLE (ID int, Department nvarchar(100), dt date);
INSERT INTO @T (ID, Department, dt) VALUES
(1, 'English', 'Feb 3 2017'),
(1, 'English', 'Feb 4 2017'),
(1, 'Science', 'Mar 1 2017'),
(1, 'Science', 'Apr 2 2017'),
(1, 'Maths  ', 'Apr 7 2017'),
(2, 'Maths  ', 'Feb 1 2017'),
(2, 'Maths  ', 'Apr 7 2017'),
(3, 'Maths  ', 'Apr 3 2017'),
(4, 'Science', 'Feb 1 2017'),
(4, 'Maths  ', 'Apr 7 2017');

क्वेरी

WITH
CTE
AS
(
    SELECT
        ID
        ,Department
        ,dt
        ,ROW_NUMBER() OVER (PARTITION BY ID, Department ORDER BY dt DESC) AS rnPart
        ,ROW_NUMBER() OVER (PARTITION BY ID ORDER BY dt DESC) AS rnID
    FROM @T
)
SELECT
    ID
    ,Department
    ,dt
FROM CTE
WHERE
    rnPart = 1
    AND rnID <> 1
ORDER BY
    ID
    ,dt
;

परिणाम

+----+------------+------------+
| ID | Department |     dt     |
+----+------------+------------+
|  1 | English    | 2017-02-04 |
|  1 | Science    | 2017-04-02 |
|  4 | Science    | 2017-02-01 |
+----+------------+------------+


  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. मैं अपने सी # कोड से SQL सर्वर संग्रहीत प्रो में कैसे कदम उठा सकता हूं?

  4. SQL सर्वर त्रुटि 1934 INSERT पर गणना कॉलम PHP/PDO के साथ तालिका में होती है

  5. क्या किसी कॉलम के डेटाटाइप को एक दृश्य में बदलना संभव है?