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

Jak znaleźć N kolejnych rekordów w tabeli za pomocą SQL?

Musisz dopasować swój stół do siebie, tak jakby tam były 2 stoły. Używasz więc dwóch aliasów, o1 i o2 do odwoływania się do tabeli:

SELECT DISTINCT o1.customer, o1.product, o1.datum, o1.sale
  FROM one o1, one o2
  WHERE (o1.datum = o2.datum-1 OR o1.datum = o2.datum +1)
  AND o1.sale = 'NO' 
  AND o2.sale = 'NO'; 
 customer | product |   datum    | sale 
----------+---------+------------+------
 X        | A       | 2010-01-03 | NO
 X        | A       | 2010-01-04 | NO
 X        | A       | 2010-01-06 | NO
 X        | A       | 2010-01-07 | NO
 X        | A       | 2010-01-08 | NO

Zauważ, że wykonałem zapytanie w bazie danych postgresql - być może składnia różni się na serwerze ms-sql, być może pod aliasem 'FROM one AS o1', a może nie możesz w ten sposób dodawać/odejmować.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uprawnienia dla PSExec uruchamiane z zadania SQL

  2. Problem z aktualizacją dynamicznej procedury składowanej sql?

  3. Jaka jest maksymalna liczba kolumn dozwolona w widoku SQL Server 2008?

  4. SQL Server Asp.Net - Logowanie nie powiodło się

  5. Jak stworzyć alias bazy danych w SQL Server