質問の際は、CREATE TABLE, INSERT も載せると回答が付きやすいです。
sqlplusで連続した日付は
SQL
1SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' ;
2
3セッションが変更されました。
4
5SQL> SELECT A.DATE_FROM + ROWNUM - 1 AS DATES
6 2 FROM(
7 3 SELECT TO_DATE('16/10/01', 'YY/MM/DD') AS DATE_FROM
8 4 , TO_DATE('16/10/03', 'YY/MM/DD') AS DATE_TO
9 5 FROM DUAL
10 6 ) A
11 7 CONNECT BY LEVEL <= A.DATE_TO - A.DATE_FROM + 1 ;
12
13DATES
14--------
1516/10/01
1616/10/02
1716/10/03
18
19SQL>
で取得できます。
時間がないので、とりあえず鉛筆だけ。
SQL
1SQL> WITH SHOHIN_LIST AS
2 2 (
3 3 SELECT '鉛筆' AS SHOHIN_MEI, TO_DATE('16/10/01', 'YY/MM/DD') AS D
4ATE_FROM, TO_DATE('16/10/03', 'YY/MM/DD') AS DATE_TO, 2 AS KOSU FROM DUAL
5 4 )
6 5 SELECT A.SHOHIN_MEI
7 6 , A.DATE_FROM + ROWNUM - 1 AS DATES
8 7 , A.KOSU
9 8 FROM(
10 9 SELECT SL.SHOHIN_MEI
11 10 , SL.DATE_FROM
12 11 , SL.DATE_TO
13 12 , SL.KOSU
14 13 FROM SHOHIN_LIST SL
15 14 ) A
16 15 CONNECT BY LEVEL <= A.DATE_TO - A.DATE_FROM + 1 ;
17
18SHOHIN_MEI DATES KOSU
19------------ -------- -------------
20鉛筆 16/10/01 2
21鉛筆 16/10/02 2
22鉛筆 16/10/03 2
23
24SQL>