回答編集履歴
3
追記
test
CHANGED
@@ -33,3 +33,47 @@
|
|
33
33
|
) as X
|
34
34
|
|
35
35
|
```
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
## 追記
|
40
|
+
|
41
|
+
「サブクエリ内で括弧の外側のテーブルの情報は条件に指定できません」これが引っかかるのですが
|
42
|
+
|
43
|
+
select側に記述した場合カッコの外側の値を使って指定できます。
|
44
|
+
|
45
|
+
複数項目持ってくるとエラーになるのですが、項目が1つの場合ならサブクエリで処理できるはずです。
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
```sql
|
50
|
+
|
51
|
+
select f.horse_id,f.race_id,ri.date
|
52
|
+
|
53
|
+
,(
|
54
|
+
|
55
|
+
select top 1 ri2.date--,ri2.race_id ←これはエラー
|
56
|
+
|
57
|
+
from feature f2
|
58
|
+
|
59
|
+
inner join race_info ri2 on ri2.race_id = f2.race_id
|
60
|
+
|
61
|
+
-- 条件は質問文からはうまく読み取れないのでなんとなく
|
62
|
+
|
63
|
+
where f2.horse_id=f.horse_id
|
64
|
+
|
65
|
+
and ri2.date<ri.date
|
66
|
+
|
67
|
+
-- 並び順指定、この並び順から先頭1件を取得できる
|
68
|
+
|
69
|
+
order by ri2.date desc
|
70
|
+
|
71
|
+
) as date2
|
72
|
+
|
73
|
+
from feature f
|
74
|
+
|
75
|
+
inner join race_info ri on f.race_id = ri.race_id
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
```
|
2
追記
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
apply句を使用すればよろしいかと思います。そのような場合に使います。
|
2
|
+
|
3
|
+
条件読み取って再度追記してみました。
|
2
4
|
|
3
5
|
|
4
6
|
|
@@ -14,11 +16,15 @@
|
|
14
16
|
|
15
17
|
select top 1 ri2.race_id as race_id2,ri2.date as date2
|
16
18
|
|
17
|
-
from r
|
19
|
+
from feature f2
|
20
|
+
|
21
|
+
inner join race_info ri2 on ri2.race_id = f2.race_id
|
18
22
|
|
19
23
|
-- 条件は質問文からはうまく読み取れないのでなんとなく
|
20
24
|
|
25
|
+
where f2.horse_id=f.horse_id
|
26
|
+
|
21
|
-
|
27
|
+
and ri2.date<ri.date
|
22
28
|
|
23
29
|
-- 並び順指定、この並び順から先頭1件を取得できる
|
24
30
|
|
1
誤字修正
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
outer apply (
|
14
14
|
|
15
|
-
select top 1 race_id as race_id2,date as date2
|
15
|
+
select top 1 ri2.race_id as race_id2,ri2.date as date2
|
16
16
|
|
17
17
|
from race_info ri2
|
18
18
|
|