更新历史数据科技部归类字段.sql
9.45 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
-- ============================================
-- 批量更新品项明细表和业绩表的科技部归类字段
-- ============================================
-- 说明:此脚本用于批量更新以下表的 F_KjbCategory 字段
-- 1. lq_kd_pxmx(开单品项明细表)
-- 2. lq_kd_jksyj(开单健康师业绩表)
-- 3. lq_kd_kjbsyj(开单科技部老师业绩表)
-- 4. lq_hytk_mx(退卡品项明细表)
-- 5. lq_hytk_jksyj(退卡健康师业绩表)
-- 6. lq_hytk_kjbsyj(退卡科技部老师业绩表)
--
-- 数据来源:从关联的项目资料表(lq_xmzl)的 F_BeautyType 字段获取科技部归类
--
-- 关联关系:
-- - lq_kd_pxmx.px = lq_xmzl.F_Id
-- - lq_kd_jksyj.F_ItemId 或通过 lq_kd_pxmx 关联 = lq_xmzl.F_Id
-- - lq_kd_kjbsyj.F_ItemId 或通过 lq_kd_pxmx 关联 = lq_xmzl.F_Id
-- - lq_hytk_mx.px = lq_xmzl.F_Id
-- - lq_hytk_jksyj.F_ItemId 或通过 lq_hytk_mx 关联 = lq_xmzl.F_Id
-- - lq_hytk_kjbsyj.F_ItemId 或通过 lq_hytk_mx 关联 = lq_xmzl.F_Id
--
-- 更新逻辑:
-- - 更新所有记录(不判断是否有效)
-- - 只更新关联的项目资料存在且F_BeautyType字段有值的记录
-- - 从 lq_xmzl.F_BeautyType 字段获取科技部归类
-- ============================================
-- 1. 更新开单品项明细表的科技部归类字段
-- ============================================
UPDATE lq_kd_pxmx pxmx
INNER JOIN lq_xmzl xmzl ON pxmx.px = xmzl.F_Id
SET pxmx.F_KjbCategory = xmzl.F_BeautyType
WHERE xmzl.F_BeautyType IS NOT NULL
AND xmzl.F_BeautyType != '';
-- ============================================
-- 2. 更新开单健康师业绩表的科技部归类字段
-- ============================================
-- 方式1:通过品项ID直接关联
UPDATE lq_kd_jksyj jksyj
INNER JOIN lq_xmzl xmzl ON jksyj.F_ItemId = xmzl.F_Id
SET jksyj.F_KjbCategory = xmzl.F_BeautyType
WHERE xmzl.F_BeautyType IS NOT NULL
AND xmzl.F_BeautyType != ''
AND jksyj.F_ItemId IS NOT NULL
AND jksyj.F_ItemId != '';
-- 方式2:通过开单品项明细表关联(当F_ItemId为空时)
UPDATE lq_kd_jksyj jksyj
INNER JOIN lq_kd_pxmx pxmx ON jksyj.F_kdpxid = pxmx.F_Id
INNER JOIN lq_xmzl xmzl ON pxmx.px = xmzl.F_Id
SET jksyj.F_KjbCategory = xmzl.F_BeautyType
WHERE xmzl.F_BeautyType IS NOT NULL
AND xmzl.F_BeautyType != ''
AND (jksyj.F_ItemId IS NULL OR jksyj.F_ItemId = '')
AND jksyj.F_kdpxid IS NOT NULL
AND jksyj.F_kdpxid != '';
-- ============================================
-- 3. 更新开单科技部老师业绩表的科技部归类字段
-- ============================================
-- 方式1:通过品项ID直接关联
UPDATE lq_kd_kjbsyj kjbsyj
INNER JOIN lq_xmzl xmzl ON kjbsyj.F_ItemId = xmzl.F_Id
SET kjbsyj.F_KjbCategory = xmzl.F_BeautyType
WHERE xmzl.F_BeautyType IS NOT NULL
AND xmzl.F_BeautyType != ''
AND kjbsyj.F_ItemId IS NOT NULL
AND kjbsyj.F_ItemId != '';
-- 方式2:通过开单品项明细表关联(当F_ItemId为空时)
UPDATE lq_kd_kjbsyj kjbsyj
INNER JOIN lq_kd_pxmx pxmx ON kjbsyj.F_kdpxid = pxmx.F_Id
INNER JOIN lq_xmzl xmzl ON pxmx.px = xmzl.F_Id
SET kjbsyj.F_KjbCategory = xmzl.F_BeautyType
WHERE xmzl.F_BeautyType IS NOT NULL
AND xmzl.F_BeautyType != ''
AND (kjbsyj.F_ItemId IS NULL OR kjbsyj.F_ItemId = '')
AND kjbsyj.F_kdpxid IS NOT NULL
AND kjbsyj.F_kdpxid != '';
-- ============================================
-- 4. 更新退卡品项明细表的科技部归类字段
-- ============================================
UPDATE lq_hytk_mx mx
INNER JOIN lq_xmzl xmzl ON mx.px = xmzl.F_Id
SET mx.F_KjbCategory = xmzl.F_BeautyType
WHERE xmzl.F_BeautyType IS NOT NULL
AND xmzl.F_BeautyType != '';
-- ============================================
-- 5. 更新退卡健康师业绩表的科技部归类字段
-- ============================================
-- 方式1:通过品项ID直接关联
UPDATE lq_hytk_jksyj jksyj
INNER JOIN lq_xmzl xmzl ON jksyj.F_ItemId = xmzl.F_Id
SET jksyj.F_KjbCategory = xmzl.F_BeautyType
WHERE xmzl.F_BeautyType IS NOT NULL
AND xmzl.F_BeautyType != ''
AND jksyj.F_ItemId IS NOT NULL
AND jksyj.F_ItemId != '';
-- 方式2:通过退卡品项明细表关联(当F_ItemId为空时)
UPDATE lq_hytk_jksyj jksyj
INNER JOIN lq_hytk_mx mx ON jksyj.F_tkpxid = mx.F_Id
INNER JOIN lq_xmzl xmzl ON mx.px = xmzl.F_Id
SET jksyj.F_KjbCategory = xmzl.F_BeautyType
WHERE xmzl.F_BeautyType IS NOT NULL
AND xmzl.F_BeautyType != ''
AND (jksyj.F_ItemId IS NULL OR jksyj.F_ItemId = '')
AND jksyj.F_tkpxid IS NOT NULL
AND jksyj.F_tkpxid != '';
-- ============================================
-- 6. 更新退卡科技部老师业绩表的科技部归类字段
-- ============================================
-- 方式1:通过品项ID直接关联
UPDATE lq_hytk_kjbsyj kjbsyj
INNER JOIN lq_xmzl xmzl ON kjbsyj.F_ItemId = xmzl.F_Id
SET kjbsyj.F_KjbCategory = xmzl.F_BeautyType
WHERE xmzl.F_BeautyType IS NOT NULL
AND xmzl.F_BeautyType != ''
AND kjbsyj.F_ItemId IS NOT NULL
AND kjbsyj.F_ItemId != '';
-- 方式2:通过退卡品项明细表关联(当F_ItemId为空时)
UPDATE lq_hytk_kjbsyj kjbsyj
INNER JOIN lq_hytk_mx mx ON kjbsyj.F_tkpxid = mx.F_Id
INNER JOIN lq_xmzl xmzl ON mx.px = xmzl.F_Id
SET kjbsyj.F_KjbCategory = xmzl.F_BeautyType
WHERE xmzl.F_BeautyType IS NOT NULL
AND xmzl.F_BeautyType != ''
AND (kjbsyj.F_ItemId IS NULL OR kjbsyj.F_ItemId = '')
AND kjbsyj.F_tkpxid IS NOT NULL
AND kjbsyj.F_tkpxid != '';
-- ============================================
-- 7. 验证更新结果
-- ============================================
-- 查看各表更新后的统计信息
--
-- lq_kd_pxmx 更新后的统计信息
-- SELECT
-- '开单品项明细' AS 表名,
-- F_KjbCategory AS 科技部归类,
-- COUNT(*) AS 记录数
-- FROM lq_kd_pxmx
-- WHERE F_KjbCategory IS NOT NULL
-- GROUP BY F_KjbCategory
-- ORDER BY 记录数 DESC;
-- lq_kd_jksyj 更新后的统计信息
-- SELECT
-- '开单健康师业绩' AS 表名,
-- F_KjbCategory AS 科技部归类,
-- COUNT(*) AS 记录数
-- FROM lq_kd_jksyj
-- WHERE F_KjbCategory IS NOT NULL
-- GROUP BY F_KjbCategory
-- ORDER BY 记录数 DESC;
-- lq_kd_kjbsyj 更新后的统计信息
-- SELECT
-- '开单科技部老师业绩' AS 表名,
-- F_KjbCategory AS 科技部归类,
-- COUNT(*) AS 记录数
-- FROM lq_kd_kjbsyj
-- WHERE F_KjbCategory IS NOT NULL
-- GROUP BY F_KjbCategory
-- ORDER BY 记录数 DESC;
-- lq_hytk_mx 更新后的统计信息
-- SELECT
-- '退卡品项明细' AS 表名,
-- F_KjbCategory AS 科技部归类,
-- COUNT(*) AS 记录数
-- FROM lq_hytk_mx
-- WHERE F_KjbCategory IS NOT NULL
-- GROUP BY F_KjbCategory
-- ORDER BY 记录数 DESC;
-- lq_hytk_jksyj 更新后的统计信息
-- SELECT
-- '退卡健康师业绩' AS 表名,
-- F_KjbCategory AS 科技部归类,
-- COUNT(*) AS 记录数
-- FROM lq_hytk_jksyj
-- WHERE F_KjbCategory IS NOT NULL
-- GROUP BY F_KjbCategory
-- ORDER BY 记录数 DESC;
-- lq_hytk_kjbsyj 更新后的统计信息
-- SELECT
-- '退卡科技部老师业绩' AS 表名,
-- F_KjbCategory AS 科技部归类,
-- COUNT(*) AS 记录数
-- FROM lq_hytk_kjbsyj
-- WHERE F_KjbCategory IS NOT NULL
-- GROUP BY F_KjbCategory
-- ORDER BY 记录数 DESC;
-- ============================================
-- 8. 查看未更新的记录数(关联的项目资料不存在或fl4为空)
-- ============================================
--
-- lq_kd_pxmx 未更新记录数
-- SELECT COUNT(*) AS 未更新记录数
-- FROM lq_kd_pxmx pxmx
-- LEFT JOIN lq_xmzl xmzl ON pxmx.px = xmzl.F_Id
-- WHERE xmzl.F_Id IS NULL
-- OR xmzl.F_BeautyType IS NULL
-- OR xmzl.F_BeautyType = '';
-- lq_kd_jksyj 未更新记录数
-- SELECT COUNT(*) AS 未更新记录数
-- FROM lq_kd_jksyj jksyj
-- LEFT JOIN lq_xmzl xmzl ON jksyj.F_ItemId = xmzl.F_Id
-- LEFT JOIN lq_kd_pxmx pxmx ON jksyj.F_kdpxid = pxmx.F_Id
-- LEFT JOIN lq_xmzl xmzl2 ON pxmx.px = xmzl2.F_Id
-- WHERE (xmzl.F_Id IS NULL OR xmzl.F_BeautyType IS NULL OR xmzl.F_BeautyType = '')
-- AND (xmzl2.F_Id IS NULL OR xmzl2.F_BeautyType IS NULL OR xmzl2.F_BeautyType = '');
-- lq_kd_kjbsyj 未更新记录数
-- SELECT COUNT(*) AS 未更新记录数
-- FROM lq_kd_kjbsyj kjbsyj
-- LEFT JOIN lq_xmzl xmzl ON kjbsyj.F_ItemId = xmzl.F_Id
-- LEFT JOIN lq_kd_pxmx pxmx ON kjbsyj.F_kdpxid = pxmx.F_Id
-- LEFT JOIN lq_xmzl xmzl2 ON pxmx.px = xmzl2.F_Id
-- WHERE (xmzl.F_Id IS NULL OR xmzl.F_BeautyType IS NULL OR xmzl.F_BeautyType = '')
-- AND (xmzl2.F_Id IS NULL OR xmzl2.F_BeautyType IS NULL OR xmzl2.F_BeautyType = '');
-- lq_hytk_mx 未更新记录数
-- SELECT COUNT(*) AS 未更新记录数
-- FROM lq_hytk_mx mx
-- LEFT JOIN lq_xmzl xmzl ON mx.px = xmzl.F_Id
-- WHERE xmzl.F_Id IS NULL
-- OR xmzl.F_BeautyType IS NULL
-- OR xmzl.F_BeautyType = '';
-- lq_hytk_jksyj 未更新记录数
-- SELECT COUNT(*) AS 未更新记录数
-- FROM lq_hytk_jksyj jksyj
-- LEFT JOIN lq_xmzl xmzl ON jksyj.F_ItemId = xmzl.F_Id
-- LEFT JOIN lq_hytk_mx mx ON jksyj.F_tkpxid = mx.F_Id
-- LEFT JOIN lq_xmzl xmzl2 ON mx.px = xmzl2.F_Id
-- WHERE (xmzl.F_Id IS NULL OR xmzl.F_BeautyType IS NULL OR xmzl.F_BeautyType = '')
-- AND (xmzl2.F_Id IS NULL OR xmzl2.F_BeautyType IS NULL OR xmzl2.F_BeautyType = '');
-- lq_hytk_kjbsyj 未更新记录数
-- SELECT COUNT(*) AS 未更新记录数
-- FROM lq_hytk_kjbsyj kjbsyj
-- LEFT JOIN lq_xmzl xmzl ON kjbsyj.F_ItemId = xmzl.F_Id
-- LEFT JOIN lq_hytk_mx mx ON kjbsyj.F_tkpxid = mx.F_Id
-- LEFT JOIN lq_xmzl xmzl2 ON mx.px = xmzl2.F_Id
-- WHERE (xmzl.F_Id IS NULL OR xmzl.F_BeautyType IS NULL OR xmzl.F_BeautyType = '')
-- AND (xmzl2.F_Id IS NULL OR xmzl2.F_BeautyType IS NULL OR xmzl2.F_BeautyType = '');