我有2张table(table:访问和购物篮),我需要一种方法来插入数据到表购物篮与一些数据从表购物。
表:访问
| 维斯标识|维斯_名称|维斯日期|
| - -|- -|- -|
| 一个|麦克|2021年12月9日|
| 2个|吕|2021年9月2日|
| 三个|路加|2021年3月4日|
| 四个|占士|2021年1月19日|
bas_ID与维斯_ID是相同的ID。我想将访问日期'vis_date'相同的项目'freebie'插入到所有访问〉= '2021-05-01'的购物篮中,以字段购物篮日期'bas_date'
我的问题是,如果购物篮中有商品,下一个购物篮位置'bas_pos'应该是最大值+ 1。但如果table购物篮中没有商品,bas_pos应该是1。
表输出:筐
| 基础标识|基本项目|基线日期|低音位置|
| - -|- -|- -|- -|
| 一个|帽盖|2021年12月9日|一个|
| 一个|球|2021年12月9日|2个|
| 一个|果实|2021年12月9日|三个|
| 一个|免费赠品|2021年12月9日|四个|
| 2个|免费赠品|2021年9月2日|一个|
我想我必须用subselect来实现?我的代码适合DB2吗?谢谢。
Insert into basket
select vis_ID, 'freebie', vis_date, case when(select max(bas_pos) from basket b
where b.bas_ID = c.vis_ID) is null then '1' else int(select vis_ID, 'freebie', vis_date, case when(select max(bas_pos) from basket b
where b.bas_ID = c.vis_ID) +1 end
from visit c
where vis_date >= '2021-05-01'
1条答案
按热度按时间x759pob21#
试试看: