WITH RECURSIVE batch_series AS (
SELECT date('${starttime}') AS batch_date
UNION ALL
SELECT date(batch_date, '+1 day')
FROM batch_series
WHERE date(batch_date, '+1 day') <= date('${endtime}')
),//这是时间的查询,时间的参数基本保持不变,后面就是表的查询
//可以是查表,也可以是建随机数表
data_all AS (
SELECT
ROW_NUMBER() OVER (ORDER BY batch_date, shift_no) AS "序号",
'PC' || strftime('%Y%m%d', batch_date) || printf('%02d', shift_no) AS "批次号",
'DD' || strftime('%Y%m%d', batch_date) || printf('%04d', ABS(RANDOM())%9999) AS "订单号",
'TZ' || printf('%06d', ABS(RANDOM())%999999) AS "特征号",
CASE ABS(RANDOM()) % 4
WHEN 0 THEN '瓶装A款饮品'
WHEN 1 THEN '瓶装B款饮品'
WHEN 2 THEN '瓶装C款饮品'
ELSE '瓶装D款饮品'
END AS "物料名",
CASE ABS(RANDOM()) % 4
WHEN 0 THEN 'WL00101'
WHEN 1 THEN 'WL00102'
WHEN 2 THEN 'WL00103'
ELSE 'WL00104'
END AS "物料编号",
shift_no AS "班次号",
5000 + ABS(RANDOM()) % 20000 AS "批次设定数",
batch_date AS "生产日期",
10 + ABS(RANDOM()) % 120 AS "总空瓶剔除数(瓶)",
5 + ABS(RANDOM()) % 90 AS "总产品剔除数(瓶)",
(5000 + ABS(RANDOM()) % 20000) - (10 + ABS(RANDOM()) % 120) AS "灌装实际产量",
(5000 + ABS(RANDOM()) % 20000) - (15 + ABS(RANDOM()) % 150) AS "装盒实际产量",
5 + ABS(RANDOM()) % 60 AS "设备A剔除数(瓶)",
2 + ABS(RANDOM()) % 40 AS "设备B剔除数(瓶)",
1 + ABS(RANDOM()) % 35 AS "设备C剔除数(瓶)",
2 + ABS(RANDOM()) % 30 AS "设备D剔除数(瓶)",
1 + ABS(RANDOM()) % 25 AS "设备E剔除数(瓶)",
1 + ABS(RANDOM()) % 20 AS "设备F剔除数(瓶)",
1 + ABS(RANDOM()) % 18 AS "设备G剔除数(瓶)",
2 + ABS(RANDOM()) % 30 AS "设备H剔除数(瓶)",
1 + ABS(RANDOM()) % 15 AS "设备I剔除数(瓶)",
1 + ABS(RANDOM()) % 12 AS "设备J剔除数(瓶)",
1 + ABS(RANDOM()) % 8 AS "设备K剔除数(瓶)",
1 + ABS(RANDOM()) % 22 AS "设备L剔除数(瓶)",
1 + ABS(RANDOM()) % 16 AS "设备M剔除数(瓶)",
1 + ABS(RANDOM()) % 10 AS "设备N剔除数(瓶)",
1 + ABS(RANDOM()) % 9 AS "设备O剔除数(瓶)"
FROM batch_series, (SELECT 1 AS shift_no UNION SELECT 2 UNION SELECT 3) AS shift_list
)
SELECT * FROM data_all
WHERE
( '${orderid}' = '' OR 订单号 = '${orderid}' )
AND ( '${materialid}' = '' OR 物料编号 = '${materialid}' )
ORDER BY 生产日期, 班次号;