清洗流水表添加送出送回时间字段.sql
2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
-- ============================================
-- 为清洗流水表(lq_laundry_flow)添加送出/送回时间字段
-- ============================================
-- 说明:此脚本为清洗流水表添加送出时间和送回时间字段,用于记录实际的送出/送回时间
--
-- 字段说明:
-- F_SendTime:送出时间,用于记录实际的送出时间(流水类型为0时使用)
-- F_ReturnTime:送回时间,用于记录实际的送回时间(流水类型为1时使用)
--
-- 业务含义:
-- - 送出时间:记录实际送出清洗的时间,便于后续统计
-- - 送回时间:记录实际送回清洗的时间,便于后续统计
-- - F_CreateTime:保持为记录创建时间(系统时间),用于记录数据录入时间
--
-- 注意事项:
-- - 字段类型为DATETIME,允许为NULL(历史数据可能没有这些时间)
-- - 字段位置:放在 F_CreateTime 字段之后
-- - 创建后需要更新历史数据,将 F_CreateTime 的值复制到对应的时间字段
-- ============================================
-- 1. 添加送出时间字段
-- ============================================
ALTER TABLE `lq_laundry_flow`
ADD COLUMN `F_SendTime` DATETIME NULL COMMENT '送出时间(流水类型为0时使用)' AFTER `F_CreateTime`;
-- ============================================
-- 2. 添加送回时间字段
-- ============================================
ALTER TABLE `lq_laundry_flow`
ADD COLUMN `F_ReturnTime` DATETIME NULL COMMENT '送回时间(流水类型为1时使用)' AFTER `F_SendTime`;
-- ============================================
-- 3. 更新历史数据:将创建时间复制到对应的时间字段
-- ============================================
-- 更新送出记录:将创建时间复制到送出时间
UPDATE `lq_laundry_flow`
SET `F_SendTime` = `F_CreateTime`
WHERE `F_FlowType` = 0
AND `F_SendTime` IS NULL
AND `F_CreateTime` IS NOT NULL;
-- 更新送回记录:将创建时间复制到送回时间
UPDATE `lq_laundry_flow`
SET `F_ReturnTime` = `F_CreateTime`
WHERE `F_FlowType` = 1
AND `F_ReturnTime` IS NULL
AND `F_CreateTime` IS NOT NULL;
-- ============================================
-- 4. 验证更新结果
-- ============================================
-- 查看更新后的统计信息
SELECT
F_FlowType,
CASE WHEN F_FlowType = 0 THEN '送出' ELSE '送回' END as FlowTypeName,
COUNT(*) as TotalCount,
COUNT(CASE WHEN F_FlowType = 0 THEN F_SendTime END) as HasSendTimeCount,
COUNT(CASE WHEN F_FlowType = 1 THEN F_ReturnTime END) as HasReturnTimeCount
FROM lq_laundry_flow
WHERE F_IsEffective = 1
GROUP BY F_FlowType;