回答編集履歴

6

推敲

2019/03/13 02:58

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -1,4 +1,4 @@
1
- 日付のうち新しい方を選択する場合に、今日より未来日やNullの場合は除外するとして、除外したい場合を入力範囲外の日付に置き換えます。
1
+ 日付のうち新しい方を選択する場合に、今日より未来日やNullの場合は除外するとして、除外したい場合を入力範囲外の過去の日付に置き換えます。
2
2
 
3
3
  新しい方を選択するには[GREATEST](https://www.shift-the-oracle.com/sql/functions/greatest-least.html)を利用します
4
4
 

5

推敲

2019/03/13 02:58

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -1,4 +1,4 @@
1
- 今日より未来日やNullの場合を入力範囲外の日付に置き換えて、そのデータのうち新しい方を選択するようにします。
1
+ 日付のうち新しい方を選択する場合に、今日より未来日やNullの場合は除外するとして、除外したい場合を入力範囲外の日付に置き換えます。
2
2
 
3
3
  新しい方を選択するには[GREATEST](https://www.shift-the-oracle.com/sql/functions/greatest-least.html)を利用します
4
4
 

4

追記

2019/03/13 02:57

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -1,4 +1,6 @@
1
1
  今日より未来日やNullの場合を入力範囲外の日付に置き換えて、そのデータのうち新しい方を選択するようにします。
2
+
3
+ 新しい方を選択するには[GREATEST](https://www.shift-the-oracle.com/sql/functions/greatest-least.html)を利用します
2
4
 
3
5
  ```SQL
4
6
 

3

修正

2019/03/13 02:33

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -18,25 +18,17 @@
18
18
 
19
19
  select cs.*
20
20
 
21
- , coalesce(
21
+ , case when LICENSEDATE1 >= SYSDATE or LICENSEDATE1 is Null
22
22
 
23
- case when LICENSEDATE1 >= SYSDATE
23
+ then to_date('1900/01/01','yyyy/mm/dd') else LICENSEDATE1
24
24
 
25
- then to_date('1900/01/01','yyyy/mm/dd') else LICENSEDATE1 end
25
+ end AS EDIT_LICENSEDATE1
26
26
 
27
- , to_date('1900/01/01','yyyy/mm/dd')
27
+ , case when LICENSEDATE2 >= SYSDATE or LICENSEDATE2 is null
28
28
 
29
- ) AS EDIT_LICENSEDATE1
29
+ then to_date('1900/01/01','yyyy/mm/dd') else LICENSEDATE2
30
30
 
31
- , coalesce(
32
-
33
- case when LICENSEDATE2 >= SYSDATE
34
-
35
- then to_date('1900/01/01','yyyy/mm/dd') else LICENSEDATE2 end
36
-
37
- , to_date('1900/01/01','yyyy/mm/dd')
38
-
39
- ) AS EDIT_LICENSEDATE2
31
+ end AS EDIT_LICENSEDATE2
40
32
 
41
33
  from COMSTAFF CS
42
34
 

2

修正

2019/03/13 02:25

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -1,4 +1,4 @@
1
- 今日より未来日のデータを入力範囲外の日付に置き換えて、そのデータのうち新しい方を選択するようにします。
1
+ 今日より未来日やNull場合を入力範囲外の日付に置き換えて、そのデータのうち新しい方を選択するようにします。
2
2
 
3
3
  ```SQL
4
4
 

1

修正

2019/03/13 02:09

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -18,9 +18,25 @@
18
18
 
19
19
  select cs.*
20
20
 
21
- , case when LICENSEDATE1 >= SYSDATE then to_date('1900/01/01','yyyy/mm/dd') else LICENSEDATE1 end EDIT_LICENSEDATE1
21
+ , coalesce(
22
22
 
23
+ case when LICENSEDATE1 >= SYSDATE
24
+
25
+ then to_date('1900/01/01','yyyy/mm/dd') else LICENSEDATE1 end
26
+
27
+ , to_date('1900/01/01','yyyy/mm/dd')
28
+
29
+ ) AS EDIT_LICENSEDATE1
30
+
31
+ , coalesce(
32
+
33
+ case when LICENSEDATE2 >= SYSDATE
34
+
23
- , case when LICENSEDATE2 >= SYSDATE then to_date('1900/01/01','yyyy/mm/dd') else LICENSEDATE2 end EDIT_LICENSEDATE2
35
+ then to_date('1900/01/01','yyyy/mm/dd') else LICENSEDATE2 end
36
+
37
+ , to_date('1900/01/01','yyyy/mm/dd')
38
+
39
+ ) AS EDIT_LICENSEDATE2
24
40
 
25
41
  from COMSTAFF CS
26
42