Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Problemy z użyciem ROW_NUMBER() OVER (PARTITION BY...)

Zrobiłbym coś takiego:

;WITH x 
 AS (SELECT *, 
            Row_number() 
              OVER( 
                partition BY employeeid 
                ORDER BY datestart) rn 
     FROM   employeehistory) 
SELECT * 
FROM   x x1 
   LEFT OUTER JOIN x x2 
                ON x1.rn = x2.rn + 1 

A może byłoby to x2.rn - 1. Musisz to zobaczyć. W każdym razie masz pomysł. Po dołączeniu do stołu możesz filtrować, grupować, sortować itp., aby uzyskać to, czego potrzebujesz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź nazwy parametrów procedury składowanej

  2. Czy możliwe jest przywrócenie kopii zapasowej Sql Server 2008 na serwerze sql 2005?

  3. Błąd potwierdzenia uzgadniania uzgadniania przed logowaniem w programie SQL Server

  4. Formatowanie SQL w SQL Server Management Studio

  5. Różne sposoby wykorzystania funkcji daty SQL CONVERT