回答編集履歴

3

修正

2021/04/23 08:17

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -10,9 +10,11 @@
10
10
 
11
11
  select *
12
12
 
13
- from A
13
+ FROM A a
14
14
 
15
+ LEFT JOIN B b ON a.患者コード = b.患者コード AND a.測定日 >= b.基準日
16
+
15
- where (患者コード, 基準日) in (
17
+ where (a.患者コード, b.基準日) in (
16
18
 
17
19
  select 患者コード, max_基準日
18
20
 

2

修正

2021/04/23 08:17

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -14,13 +14,13 @@
14
14
 
15
15
  where (患者コード, 基準日) in (
16
16
 
17
- select 患者コード, 基準日
17
+ select 患者コード, max_基準日
18
18
 
19
19
  from (
20
20
 
21
21
  -- 質問のSELECT
22
22
 
23
- SELECT a.患者コード,MAX(b.基準日) as 基準日,a.測定日
23
+ SELECT a.患者コード,MAX(b.基準日) as max_基準日,a.測定日
24
24
 
25
25
  FROM A a
26
26
 
@@ -30,7 +30,7 @@
30
30
 
31
31
  ) b
32
32
 
33
- group by 患者コード, 基準日
33
+ group by 患者コード, max_基準日
34
34
 
35
35
  having count(*) >= 5
36
36
 

1

訂正

2021/04/23 08:07

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  -- 質問のSELECT
22
22
 
23
- SELECT a.患者コード,MAX(b.基準日) as 基準日,a.測定日,COUNT(*)
23
+ SELECT a.患者コード,MAX(b.基準日) as 基準日,a.測定日
24
24
 
25
25
  FROM A a
26
26