回答編集履歴

3

修正

2018/06/12 09:31

投稿

sazi
sazi

スコア25173

test CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  内部的に生成した連番とその日数を結合し、取得した連番を出庫日に加算して貸出日とする。
4
4
 
5
- ※seqlist が連番のリストで0始まりとしています。
5
+ ※seqrange が連番の範囲で0始まりとしています。
6
6
 
7
-  SQL内のコメント部分が生成する連番の数なので、貸出最長日数などの十分な日数を設定して下さい。
7
+ 上限については貸出最長日数などの十分な日数を設定して下さい。
8
8
 
9
9
 
10
10
 

2

変更

2018/06/12 09:31

投稿

sazi
sazi

スコア25173

test CHANGED
@@ -12,13 +12,15 @@
12
12
 
13
13
  ```SQL
14
14
 
15
- with seqlist as (
15
+ with
16
16
 
17
- select rownum - 1 as seq
17
+ seqrang as (select 0 as seq_from, 99 as seq_to from dual)
18
18
 
19
- from (select substr(rpad(',',99*2,'0,'),2) numlist from dual) t -- 左記99が生成する連番数
19
+ , seqlist as (
20
20
 
21
+ select seq_from + rownum - 1 as seq from seqrang
22
+
21
- connect by instr(numlist, ',', 1, level - 1) > 0
23
+ connect by level <= seq_to - seq_from + 1
22
24
 
23
25
  )
24
26
 
@@ -31,3 +33,5 @@
31
33
  order by 車両番号, 出庫日+seq
32
34
 
33
35
  ```
36
+
37
+ ※orlofskyさんの回答にあるリンクのほうが連番は簡潔そうだったので書換

1

追記

2018/06/12 09:29

投稿

sazi
sazi

スコア25173

test CHANGED
@@ -1,4 +1,4 @@
1
- 出庫日と入庫日の差がその期間の日数。
1
+ 出庫日と入庫日の差がその期間の日数。(出庫日と入庫日は日付型を想定)
2
2
 
3
3
  内部的に生成した連番とその日数を結合し、取得した連番を出庫日に加算して貸出日とする。
4
4