2016-12-02 5 views
1

私は、後の行エントリに基づいて部分と呼ばれるSQLテーブルの特定の行を表示することを検討しています。 下記のリストを参照してください。私は各特定のモデルと部品の後の行にクラス0を持っていない行を表示したい。他の行基準に基づいて行を表示

Log | SourceTime| Class| model | part 
----+-----------+------+-------+----- 
614 | 14:14  | 0 | FORD | right wing 
613 | 14:13  | 1 | FORD | right wing 
612 | 14:12  | 1 | TOYOTA| left wing 
611 | 14:11  | 0 | TOYOTA| right wing 
610 | 14:10  | 1 | TOYOTA| right wing 
609 | 14:09  | 0 | OPEL | right lamp 
608 | 14:08  | 1 | OPEL | right lamp 
607 | 14:07  | 1 | OPEL | back right wheel 
606 | 14:06  | 0 | FORD | right wheel 
605 | 14:05  | 1 | FORD | right wheel 

これらの2行は、これを試してみてください

612 | 14:12  | 1 | TOYOTA| left wing 
607 | 14:07  | 1 | OPEL | back right wheel 

答えて

1

を示すべきである:複数のCTE同じテーブルの上にその私にSELECT t1でのエラーを与える

WITH t1 AS(

     SELECT *, 
       ROW_NUMBER() OVER (PARTITION BY LOG ORDER BY LOG) RN 
     FROM TableName 
), 
t2 AS(

     SELECT *, 
       ROW_NUMBER() OVER (PARTITION BY LOG ORDER BY LOG) RN 
     FROM TableName 
) 
SELECT t1.* 
FROM t1 
WHERE Class <> 0 AND 
     NOT EXISTS (SELECT 1 
        FROM t2 
        WHERE t1.Model=t2.Model AND 
         t2.Class = 0 AND 
         t2.RN > t1.RN) 
+0

あなたの問題を解決することがあります。 *「列プレフィックス 't1'がクエリで使用されるテーブル名またはエイリアス名と一致しません」という行が表示されます。 – user1959064

+0

Ansが更新されました。 t2.Model = t2.Modelに余分な不要な '、' –

+0

があります。t2.Modelと言っています "mulit-part識別子 't2.Model'はバインドできませんでした。t2.Classとt2と同じです.RN – user1959064

関連する問題