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

Jak najít N po sobě jdoucích záznamů v tabulce pomocí SQL

Musíte porovnat svůj stůl proti sobě, jako by tam byly 2 stoly. K odkazování na vaši tabulku tedy použijete dva aliasy, o1 a o2:

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

Všimněte si, že jsem provedl dotaz na databázi postgresql - možná se syntaxe liší na ms-sql-server, možná na alias 'FROM one AS o1', a možná tímto způsobem nemůžete sčítat/odečítat.



  1. Je v mém dotazu na spojení tabulky nějaký špatný kód?

  2. SQL Server Profiler - Jak filtrovat trasování tak, aby zobrazovalo pouze události z jedné databáze?

  3. Seznam dotazů spuštěných na serveru SQL Server

  4. Chybí služba Mysql