Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Имате нужда от помощ за намиране на правилната T-SQL заявка

;WITH cte AS
(
SELECT *,
        DATEDIFF(DAY,0,DateRequested)-
        ROW_NUMBER() OVER (PARTITION BY UserId ORDER BY DateRequested) AS Grp
FROM YourTable  
WHERE Approved = 1 /*Presumably - but your example data doesn't show this.*/
)
SELECT UserId, 
       MIN(DateRequested) AS DateFrom, 
       MAX(DateRequested) AS DateTo  
FROM cte 
GROUP BY UserId,Grp


  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. Съкращаване на таблица след това вмъкване на данни в същата таблица вмъква само 1 запис

  5. Повторно използване на резултатите от общ табличен израз на SQL Server