回答編集履歴

2

サンプルリンク追加

2017/07/27 04:13

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -46,6 +46,10 @@
46
46
 
47
47
  ```
48
48
 
49
+ 動作サンプル
50
+
51
+ [SQL Fiddle](http://sqlfiddle.com/#!9/b46742/1)
52
+
49
53
 
50
54
 
51
55
  追記
@@ -81,3 +85,7 @@
81
85
  ON a.Gr = b.Gr AND a.person <> b.person;
82
86
 
83
87
  ```
88
+
89
+ 動作サンプル
90
+
91
+ [SQL Fiddle](http://sqlfiddle.com/#!9/b46742/2)

1

追記

2017/07/27 04:13

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- ```
17
+ ```SQL
18
18
 
19
19
  SELECT
20
20
 
@@ -45,3 +45,39 @@
45
45
  ON a.Gr = b.Gr;
46
46
 
47
47
  ```
48
+
49
+
50
+
51
+ 追記
52
+
53
+ ---
54
+
55
+ saziさんの回答をみて、最大2名限定なら、集計クエリにしなくてもいけることに気が付きました。
56
+
57
+ 下記のSQLで同じ結果になりますね。こちらの方が格段にシンプルですし、おそらく高速だと思います。
58
+
59
+
60
+
61
+ ```SQL
62
+
63
+ SELECT
64
+
65
+ a.*,
66
+
67
+ (CASE
68
+
69
+ WHEN b.稼動 is Null OR a.稼動 > b.稼動 THEN 'N'
70
+
71
+ WHEN a.稼動 = b.稼動 THEN 'O'
72
+
73
+ ELSE 'M'
74
+
75
+ END) AS 優
76
+
77
+ FROM
78
+
79
+ Table1 a LEFT JOIN Table1 b
80
+
81
+ ON a.Gr = b.Gr AND a.person <> b.person;
82
+
83
+ ```