sql >> データベース >  >> RDS >> Sqlserver

SQLを使用してテーブル内のN連続レコードを見つける方法

    2 つのテーブルがあるかのように、テーブルをそれ自体と一致させる必要があります。したがって、テーブルを参照するために o1 と o2 の 2 つのエイリアスを使用します。

    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
    

    postgresql データベースでクエリを実行したことに注意してください。ms-sql-server では構文が異なる可能性があり、おそらくエイリアス 'FROM one AS o1' で異なる可能性があり、その方法で加算/減算できない可能性があります。



    1. SQL MIN()およびGROUPBYを使用した追加フィールド

    2. データベースのレプリケーションまたはミラーリング?

    3. mysqlでGROUPBYを使用するときに、MAX()である最長のテキストフィールドを選択するにはどうすればよいですか?

    4. データベースからBLOBを取得し、それらを元に戻す方法