2017-02-01 4 views
2

私は次の情報を返すクエリを取得しました。私は、(行番号を含めるためにPARTITION BYを使用しました。私はwork_center_Sが新しいOrder#を開始するたびにキャプチャしますが、part_numberが前のorder/rowと同じであったときに、 part_numberが1日に数回表示される可能性があるため、このような変更が発生するたびにキャプチャする必要があるため、DISTINCT関数を使用することはできません。逐次注文時のみ複写を省略します

[![クエリ返信] [1]] [1 ] [1]:https://i.stack.imgur.com/IKvsR.jpg

+----+--------+---------------+-------------+------+ 
| rn | Order# | work_center_S | part_number | Hour | 
+----+--------+---------------+-------------+------+ 
| 1 | 7098 | TB312   | 37203  | 1 | 
+----+--------+---------------+-------------+------+ 
| 2 | 8797 | TB312   | 37194  | 4 | 
+----+--------+---------------+-------------+------+ 
| 3 | 8802 | TB312   | 37355  | 11 | 
+----+--------+---------------+-------------+------+ 
| 4 | 0946 | TB312   | 37194  | 15 | 
+----+--------+---------------+-------------+------+ 
| 5 | 0698 | TB312   | 37203  | 18 | 
+----+--------+---------------+-------------+------+ 
| 6 | 0699 | TB312   | 37203  | 21 | 
+----+--------+---------------+-------------+------+ 
+2

いつも使用しているSQL Serverのバージョンを指定してください。たとえば、LAG/LEADは便利ですが、SQL Server 2000を使用している場合はそうではありません(推測する必要があります)。 –

+0

私はSQL Server 2016を使用しています。私はまだ返された結果を正しく表示するためにstackoverflowを取得する方法を理解しようとしています。私のクエリ結果が表示されている場合、rn 5とrn 6が異なるOrder#を持っているので、両方のOrder#が同じpart_numberであるため、そこには存在しないはずのrn 6です。このためのビジネスルールについては、work_center_Sによっては1つのpart_numberしか生成されないものもありますが、1つのOrder#を無期限に実行することはできません。しかし、part_numberの変更は私がキャプチャする必要がある重要なイベントです。 –

+0

これは、単純な表形式の結果を表示するためのコードスニペットではないはずです。 [エディタの高度なヘルプ](http://stackoverflow.com/editing-help)を参照してください。 –

答えて

2

Iは

-1PART_NUMBERがないと仮定

-

+--------+---------------+-------------+------+ 
| Order# | work_center_S | part_number | Hour | 
+--------+---------------+-------------+------+ 
| 7098 | TB312   | 37203  | 1 | 
+--------+---------------+-------------+------+ 
| 8797 | TB312   | 37194  | 4 | 
+--------+---------------+-------------+------+ 
| 8802 | TB312   | 37355  | 11 | 
+--------+---------------+-------------+------+ 
| 946 | TB312   | 37194  | 15 | 
+--------+---------------+-------------+------+ 
| 698 | TB312   | 37203  | 18 | 
+--------+---------------+-------------+------+ 
+0

時が過ぎるかもしれません。おそらく 'rm'カラムが注文するのが良い選択ですが、これはOPが知っている必要があるものです。 – dlatikay

+1

@dlatikay、しかし、この投稿のためにOPによって 'rn'が生成されました。 'rn' OVER句は、LAG関数 –

+0

に使用されるべきです。それは私のために働く。 –

関連する問題