sql >> Database >  >> RDS >> Sqlserver

Hoe N opeenvolgende records in een tabel te vinden met behulp van SQL

Je moet je tafel met zichzelf matchen, alsof er 2 tafels zijn. U gebruikt dus twee aliassen, o1 en o2 om naar uw tabel te verwijzen:

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

Merk op dat ik de query op een postgresql-database heb uitgevoerd - misschien verschilt de syntaxis op ms-sql-server, misschien op de alias 'FROM one AS o1', en misschien kun je op die manier niet optellen/aftrekken.



  1. NodeJS kon geen verbinding maken met de nieuwste versie van MYSQL in Docker Container

  2. Hoe sqlcmd &bcp op Ubuntu te installeren

  3. Hoe een draaitabel bij te werken met Eloquent in laravel 5

  4. Hoe kan ik twee MySQL-tabellen samenvoegen?