sql >> Databáze >  >> RDS >> Sqlserver

jak procházet tabulkou a najít sadu dat?

Můžete to udělat snadno pivoting to lze provést dvěma způsoby.

1. Použijte Conditional Aggregate pro otočení dat. Po pivoting můžete najít datediff mezi různými fázemi. Zkuste toto.

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. použijte Pivot transponovat 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. Tipy pro pohovor správce databáze SQL

  2. MySQL:nelze získat přístup k účtu root

  3. výjimka zlomeného potrubí s MySql v aplikaci Grails

  4. Pro parametry v připraveném výpisu nejsou dodány žádné údaje