2017-06-06 6 views
0

私は、異なる部門のある作業命令の部分を示すレポートを作成しています。 今私はグループに異なるdept_codeを持つ唯一の作業指示が表示されるはずです、このような方法でこのデータを欲しい 特定の方法でデータをグループ化する

work_order part dept_code datein 
aaaa  11 XXX  20/01/2017 
aaaa  12 BBB  22/01/2017 
bbbb  12 XXX  20/01/2017 
bbbb  15 XXX  22/01/2017 
cccc  13 XXX  20/01/2017 
cccc  17 XYX  20/01/2017 

下記の表を考えてみましょう。 RESULT

work_order part dept_code datein 
aaaa  11 XXX  20/01/2017 
aaaa  12 BBB  22/01/2017 
cccc  13 XXX  20/01/2017 
cccc  17 XYX  20/01/2017 

答えて

2

部門カウントが1より大きいだものをwork_orderアイテム識別サブクエリ使用:あなたは(カウントを使用することができ、この

SELECT work_order, part, dept_code, datein 
FROM [Table] 
WHERE work_order in 
(
    SELECT work_order 
    FROM [Table] 
    GROUP BY work_order 
    HAVING COUNT(DISTINCT dept_code) > 1 
) 
2

何かを)超えます()を以下に示す:

Select * from (
    Select *, cnt = Count(dept_code) over(partition by work_order, dept_code) from yourTable ) a 
    Where a.cnt = 1 
+0

なぜ 'distinct work_order'を使うのですか?とにかくGROUP BY work_orderはユニークなwork_ordersを生成するでしょうか? –

+1

良い点、私は答えを改訂しました。 – Simon

2

よう

select * from work 
where work_order in 
    (select work_order 
    from work w2 
    group by w2.work_order 
    having count(w2.dept_code) > 1 
) 
+1

ウィンドウ関数の 'distinct'は機能しません。 –

関連する問題