これは、あなたは、単にあなたが必要なものを得るためにあなたの名前のリストに参加することができ、開始日と終了日を、指定した日付を生成するために一般的に使用される方法です:
insert into yourTable (...)
with names as (
select 'A' as name from dual union all
select 'B' as name from dual union all
select 'C' as name from dual
),
dates as (
select date' 2017-01-01' + level -1 as yourDate
from dual
connect by date' 2016-01-01' + level -1 <= date '2017-02-20'
)
select rownum, name, yourDate
from names
cross join dates
これは持っています列の数と種類に合わせて少し編集する必要があります。それがどのように動作するかの小さな例:
with names as (
select 'A' as name from dual union all
select 'B' as name from dual union all
select 'C' as name from dual
),
dates as (
select date' 2017-02-18' + level -1 as yourDate,
level as lev
from dual
connect by date' 2017-02-18' + level -1 <= date '2017-02-20')
select rownum, name, yourDate, lev
from names
cross join dates
ができます:
ROWNUM N YOURDATE LEV
---------- - --------- ----------
1 A 18-FEB-17 1
2 B 18-FEB-17 1
3 C 18-FEB-17 1
4 A 19-FEB-17 2
5 B 19-FEB-17 2
6 C 19-FEB-17 2
7 A 20-FEB-17 3
8 B 20-FEB-17 3
9 C 20-FEB-17 3
を使用すると、MySQLやOracleを使用していますか? (含まれていない製品にはタグを付けないでください) – jarlh
A、B、Cのそれぞれについて1日1列ですか?どのような開始時間と終了時間ですか? –
@jarlh私はoracleを使用しています。 – rkSinghania