如何从另一个表批量插入12条时辰数据?
A表已经有DT字段,从1900年到2050年所有日期.
现想建B表,在每日的基础上,插入12个时辰的记录.
a:
dt(日期)
1900-1-1
...
2050-12-31
B:
dt(日期) 时辰数字 时辰
1900-1-1 1 子
1900-1-1 2 丑
....
1900-1-2 1 子
....
2050-12-31 1 子
这条批量插入的SQL如何写好点?
[解决办法]
create table A表(dt varchar(15))
create table B表
(dt varchar(16), 时辰数字 int, 时辰 varchar(5))
insert into A表(dt)
select '1900-01-01' union all
select '1900-01-02' union all
select '1900-01-03' union all
select '1900-01-04' union all
select '1900-01-05'
insert into B表
select a.dt,s.时辰数字,s.时辰
from A表 a
cross join
(select 1 '时辰数字', '子' '时辰' union all
select 2 '时辰数字', '丑' '时辰' union all
select 3 '时辰数字', '寅' '时辰' union all
select 4 '时辰数字', '卯' '时辰' union all
select 5 '时辰数字', '辰' '时辰' union all
select 6 '时辰数字', '巳' '时辰' union all
select 7 '时辰数字', '午' '时辰' union all
select 8 '时辰数字', '未' '时辰' union all
select 9 '时辰数字', '申' '时辰' union all
select 10 '时辰数字', '酉' '时辰' union all
select 11 '时辰数字', '戌' '时辰' union all
select 12 '时辰数字', '亥' '时辰') s
select dt,时辰数字,时辰 from B表
/*
dt 时辰数字 时辰
---------------- ----------- -----
1900-01-01 1 子
1900-01-01 2 丑
1900-01-01 3 寅
1900-01-01 4 卯
1900-01-01 5 辰
1900-01-01 6 巳
1900-01-01 7 午
1900-01-01 8 未
1900-01-01 9 申
1900-01-01 10 酉
1900-01-01 11 戌
1900-01-01 12 亥
1900-01-02 1 子
1900-01-02 2 丑
1900-01-02 3 寅
1900-01-02 4 卯
1900-01-02 5 辰
1900-01-02 6 巳
1900-01-02 7 午
1900-01-02 8 未
1900-01-02 9 申
1900-01-02 10 酉
1900-01-02 11 戌
1900-01-02 12 亥
1900-01-03 1 子
1900-01-03 2 丑
1900-01-03 3 寅
1900-01-03 4 卯
1900-01-03 5 辰
1900-01-03 6 巳
1900-01-03 7 午
1900-01-03 8 未
1900-01-03 9 申
1900-01-03 10 酉
1900-01-03 11 戌
1900-01-03 12 亥
1900-01-04 1 子
1900-01-04 2 丑
1900-01-04 3 寅
1900-01-04 4 卯
1900-01-04 5 辰
1900-01-04 6 巳
1900-01-04 7 午
1900-01-04 8 未
1900-01-04 9 申
1900-01-04 10 酉
1900-01-04 11 戌
1900-01-04 12 亥
1900-01-05 1 子
1900-01-05 2 丑
1900-01-05 3 寅
1900-01-05 4 卯
1900-01-05 5 辰
1900-01-05 6 巳
1900-01-05 7 午
1900-01-05 8 未
1900-01-05 9 申
1900-01-05 10 酉
1900-01-05 11 戌
1900-01-05 12 亥
(60 row(s) affected)
*/