Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

bagaimana cara mengulang tabel untuk menemukan kumpulan data?

Anda dapat melakukannya dengan mudah dengan pivoting data. Dapat dilakukan dengan dua cara.

1.Gunakan Conditional Aggregate untuk memutar data. Setelah pivoting Anda dapat menemukan datediff antara tahapan yang berbeda. Coba ini.

SELECT orderid,Received,Keyed,Printed,Delivered,
       Datediff(minute, Received, Keyed)    TurnTime1,
       Datediff(minute, Keyed, Printed)     TurnTime2,
       Datediff(minute, Printed, Delivered) TurnTime3
FROM  (SELECT OrderID,
              Max(CASE WHEN ActivityID = 1 THEN ActivityDate END) Received,
              Max(CASE WHEN ActivityID = 2 THEN ActivityDate END) Keyed,
              Max(CASE WHEN ActivityID = 3 THEN ActivityDate END) Printed,
              Max(CASE WHEN ActivityID = 4 THEN ActivityDate END) Delivered
       FROM   Yourtable
       GROUP  BY OrderID)A 

2.gunakan Pivot untuk mentranspos data

SELECT orderid,
       [1]                        AS Received,
       [2]                        AS Keyed,
       [3]                        AS Printed,
       [4]                        AS Delivered,
       Datediff(minute, [1], [2]) TurnTime1,
       Datediff(minute, [2], [3]) TurnTime2,
       Datediff(minute, [3], [4]) TurnTime3
FROM   Yourtable
       PIVOT (Max(ActivityDate)
             FOR ActivityID IN([1],[2],[3],[4]))piv 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi SQL Row_Number() di Where Clause

  2. SQL Group By - Hasilkan beberapa kolom agregat dari satu kolom

  3. Gunakan DATABASEPROPERTYEX() untuk Mengembalikan Pengaturan Database di SQL Server

  4. SQL:Kesalahan, batas layanan Ekspresi tercapai?

  5. Permintaan PIVOT pada catatan Berbeda