通话相互.sql 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. DROP TABLE IF EXISTS temp_dx_main;
  2. DROP TABLE IF EXISTS temp_dx;
  3. DROP TABLE IF EXISTS temp_dx1;
  4. DROP TABLE IF EXISTS temp_dx2;
  5. DROP TABLE IF EXISTS temp_gx;
  6. DROP TABLE IF EXISTS temp_gx_ls;
  7. DROP TABLE IF EXISTS temp_yh;
  8. DROP TABLE IF EXISTS temp_tel;
  9. DROP TABLE IF EXISTS temp_gx2;
  10. DROP TABLE IF EXISTS temp_clean_dx;
  11. DROP TABLE IF EXISTS temp_clean_gx;
  12. CREATE TEMPORARY TABLE temp_clean_dx
  13. (
  14. id
  15. bigint(20) NOT NULL AUTO_INCREMENT,
  16. case_id bigint(20) DEFAULT NULL,
  17. group_id bigint(20) DEFAULT NULL,
  18. clazz varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
  19. type varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
  20. obj varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
  21. mc varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
  22. sm varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
  23. PRIMARY KEY
  24. (
  25. id
  26. ) USING BTREE,
  27. KEY idx_case_id
  28. (
  29. case_id
  30. )
  31. USING BTREE
  32. ) ENGINE = InnoDB
  33. DEFAULT CHARSET = utf8mb4;
  34. ALTER TABLE temp_clean_dx
  35. ADD INDEX idx_clazz (clazz);
  36. ALTER TABLE temp_clean_dx
  37. ADD INDEX idx_obj (obj);
  38. INSERT INTO temp_clean_dx(case_id, group_id, clazz, type, obj, mc, sm)(select case_id, group_id, clazz, type, obj, mc, sm
  39. from clean_table_dx
  40. where case_id = 6);
  41. create TEMPORARY table temp_clean_gx
  42. (
  43. id bigint NOT NULL AUTO_INCREMENT,
  44. case_id bigint null,
  45. tb_gx_id bigint null comment '关联关系id',
  46. obj1 varchar(500) null comment '对象',
  47. obj2 varchar(500) null comment '对象',
  48. gx_mc varchar(255) null comment '关系描述',
  49. clazz varchar(20) null comment '关系类型sfz_card',
  50. num varchar(20) null comment '统计数量',
  51. sm varchar(255) null comment '对这个数量的描述',
  52. sj datetime null comment '发生时间',
  53. team_id varchar(255) null comment '组id',
  54. ext1 varchar(255) null comment '扩展字段1',
  55. ext2 varchar(255) null comment '扩展字段2',
  56. sbxq int(11) null,
  57. sjfx int(11) null,
  58. obj1_name varchar(150) null,
  59. obj2_name varchar(150) null,
  60. cs int(11) null,
  61. PRIMARY KEY (id)
  62. ) ENGINE = INNODB
  63. DEFAULT CHARSET = utf8mb4;
  64. ALTER TABLE temp_clean_gx
  65. ADD INDEX idx_clazz (clazz);
  66. ALTER TABLE temp_clean_gx
  67. ADD INDEX idx_obj1 (obj1);
  68. ALTER TABLE temp_clean_gx
  69. ADD INDEX idx_obj2 (obj2);
  70. INSERT INTO temp_clean_gx(case_id, tb_gx_id, obj1, obj2, gx_mc, clazz, num, sm, obj1_name, obj2_name, sbxq, cs,
  71. sjfx)(Select case_id,
  72. tb_gx_id,
  73. obj1,
  74. obj2,
  75. gx_mc,
  76. clazz,
  77. num,
  78. sm,
  79. obj1_name,
  80. obj2_name,
  81. sbxq,
  82. cs,
  83. sjfx
  84. from clean_table_gx
  85. where case_id = 6);
  86. CREATE TEMPORARY TABLE IF NOT EXISTS temp_dx_main
  87. (
  88. id BIGINT(20) NOT NULL AUTO_INCREMENT,
  89. team_id VARCHAR(50) DEFAULT NULL,
  90. bm VARCHAR(200) DEFAULT NULL,
  91. class VARCHAR(200) DEFAULT NULL,
  92. mc VARCHAR(200) DEFAULT NULL,
  93. sfz VARCHAR(200) DEFAULT NULL,
  94. sm VARCHAR(2000) DEFAULT NULL,
  95. dxId BIGINT(20) DEFAULT NULL,
  96. fzId BIGINT(20) DEFAULT NULL,
  97. PRIMARY KEY (id)
  98. ) ENGINE = INNODB
  99. DEFAULT CHARSET = utf8mb4;
  100. INSERT INTO temp_dx_main(class, bm, mc, sm, dxId, fzId)
  101. SELECT max(IF(obj_type = 1, 'sfz', 'ins')),
  102. max(IF(obj_type = 1, obj_type_no, obj_name)),
  103. max(obj_name),
  104. '' AS sm,
  105. id,
  106. obj_group
  107. FROM case_obj
  108. WHERE case_id = 6
  109. GROUP BY obj_type_no, obj_name;
  110. INSERT INTO temp_dx_main(class, bm, mc, sm)
  111. SELECT max(clazz), obj, max(mc), max(CAST(sm as CHAR(2000)))
  112. FROM temp_clean_dx
  113. WHERE clazz IN ('sfz', 'ins')
  114. GROUP BY obj;
  115. DELETE
  116. FROM temp_dx_main
  117. WHERE bm is null
  118. OR bm NOT IN ('513126197412174415', '513126199410052413', '成都市章大妈农副产品有限公司', '110101199003071233',
  119. '330382199003081853', '510183198103160051');
  120. CREATE TEMPORARY TABLE IF NOT EXISTS temp_dx
  121. (
  122. id BIGINT(20) NOT NULL AUTO_INCREMENT,
  123. team_id VARCHAR(50) DEFAULT NULL,
  124. class VARCHAR(20) DEFAULT NULL,
  125. type VARCHAR(50) DEFAULT NULL,
  126. bm VARCHAR(500) DEFAULT NULL,
  127. mc VARCHAR(200) DEFAULT NULL,
  128. sfz VARCHAR(50) DEFAULT NULL,
  129. zp VARCHAR(100) DEFAULT NULL,
  130. sm VARCHAR(2000) DEFAULT NULL,
  131. main VARCHAR(20) DEFAULT NULL,
  132. kg VARCHAR(100) DEFAULT NULL,
  133. dxId BIGINT(20) DEFAULT NULL,
  134. fzId BIGINT(20) DEFAULT NULL,
  135. PRIMARY KEY (id)
  136. ) ENGINE = INNODB
  137. DEFAULT CHARSET = utf8mb4;
  138. CREATE TEMPORARY TABLE IF NOT EXISTS temp_dx2
  139. (
  140. id BIGINT(20) NOT NULL,
  141. team_id VARCHAR(50) DEFAULT NULL,
  142. class VARCHAR(20) DEFAULT NULL,
  143. type VARCHAR(50) DEFAULT NULL,
  144. bm VARCHAR(200) DEFAULT NULL,
  145. mc VARCHAR(200) DEFAULT NULL,
  146. sfz VARCHAR(50) DEFAULT NULL,
  147. zp VARCHAR(100) DEFAULT NULL,
  148. sm VARCHAR(2000) DEFAULT NULL,
  149. main VARCHAR(20) DEFAULT NULL,
  150. kg VARCHAR(100) DEFAULT NULL,
  151. dxId BIGINT(20) DEFAULT NULL,
  152. fzId BIGINT(20) DEFAULT NULL
  153. ) ENGINE = INNODB
  154. DEFAULT CHARSET = utf8mb4;
  155. ALTER TABLE temp_dx
  156. ADD INDEX idx_bm (bm);
  157. ALTER TABLE temp_dx
  158. ADD INDEX idx_class (class);
  159. ALTER TABLE temp_dx2
  160. ADD INDEX idx_bm (bm);
  161. ALTER TABLE temp_dx2
  162. ADD INDEX idx_class (class);
  163. INSERT INTO temp_dx(team_id, class, bm, mc, sfz, sm, main, dxId, fzId)
  164. SELECT team_id,
  165. class,
  166. bm,
  167. temp_dx_main.mc,
  168. bm,
  169. sm,
  170. 'sys',
  171. dxId,
  172. fzId
  173. FROM temp_dx_main
  174. group by temp_dx_main.bm, temp_dx_main.mc;
  175. CREATE TEMPORARY TABLE IF NOT EXISTS temp_tel
  176. (
  177. id BIGINT(20) NOT NULL AUTO_INCREMENT,
  178. team_id VARCHAR(50) DEFAULT NULL,
  179. dx1 VARCHAR(500) DEFAULT NULL,
  180. dx2 VARCHAR(500) DEFAULT NULL,
  181. count_num int(11) DEFAULT NULL,
  182. sm VARCHAR(500) DEFAULT NULL,
  183. sbxq int(11) DEFAULT NULL,
  184. sjfx int(11) DEFAULT null,
  185. PRIMARY KEY (id)
  186. ) ENGINE = INNODB
  187. DEFAULT CHARSET = utf8mb4;
  188. ALTER TABLE temp_tel
  189. ADD INDEX idx_dx1 (dx1);
  190. ALTER TABLE temp_tel
  191. ADD INDEX idx_dx2 (dx2);
  192. CREATE TEMPORARY TABLE IF NOT EXISTS temp_yh
  193. (
  194. id BIGINT(20) NOT NULL AUTO_INCREMENT,
  195. team_id VARCHAR(50) DEFAULT NULL,
  196. dx1 VARCHAR(500) DEFAULT NULL,
  197. dx2 VARCHAR(500) DEFAULT NULL,
  198. count_num DECIMAL(38, 2) DEFAULT NULL,
  199. sm VARCHAR(200) DEFAULT NULL,
  200. sbxq int(11) DEFAULT NULL,
  201. sjfx int(11) DEFAULT null,
  202. PRIMARY KEY (id)
  203. ) ENGINE = INNODB
  204. DEFAULT CHARSET = utf8mb4;
  205. ALTER TABLE temp_yh
  206. ADD INDEX idx_dx1 (dx1);
  207. ALTER TABLE temp_yh
  208. ADD INDEX idx_dx2 (dx2);
  209. TRUNCATE TABLE temp_dx2;
  210. INSERT INTO temp_dx2(id, class, type, bm, mc, sfz, zp, sm, main, kg, fzId)
  211. select id,
  212. class,
  213. type,
  214. bm,
  215. mc,
  216. sfz,
  217. zp,
  218. sm,
  219. main,
  220. kg,
  221. fzId
  222. from temp_dx;
  223. INSERT INTO temp_dx(class, bm, mc)
  224. SELECT clazz, obj, mc
  225. FROM temp_clean_dx
  226. WHERE clazz = 'tel'
  227. AND obj IN (SELECT obj2 FROM temp_clean_gx WHERE clazz IN ('sfz_tel') AND obj1 IN (SELECT bm FROM temp_dx2));
  228. TRUNCATE TABLE temp_dx2;
  229. INSERT INTO temp_dx2(id, class, type, bm, mc, sfz, zp, sm, main, kg, fzId)
  230. select id,
  231. class,
  232. type,
  233. bm,
  234. mc,
  235. sfz,
  236. zp,
  237. sm,
  238. main,
  239. kg,
  240. fzId
  241. from temp_dx;
  242. INSERT INTO temp_tel(dx1, team_id, dx2, count_num, sm, sbxq, sjfx)
  243. SELECT obj1, obj1 AS team_id, obj2, num, sm, sbxq, sjfx
  244. FROM temp_clean_gx
  245. WHERE clazz = 'tel_tel'
  246. AND obj1 IN (SELECT bm FROM temp_dx)
  247. AND obj2 IN (SELECT bm FROM temp_dx2)
  248. GROUP BY obj1, obj2;
  249. INSERT INTO temp_tel(dx1, team_id, dx2, count_num, sm, sbxq, sjfx)
  250. SELECT obj1, obj1 AS team_id, obj2, num, sm, sbxq, sjfx
  251. FROM temp_clean_gx
  252. WHERE clazz = 'tel_tel'
  253. and sjfx = 2
  254. AND obj2 IN (SELECT bm FROM temp_dx)
  255. AND obj1 IN (SELECT bm FROM temp_dx2)
  256. GROUP BY obj1, obj2;
  257. INSERT INTO temp_dx(class, bm, mc)
  258. SELECT 'tel_gt', obj, mc
  259. FROM temp_clean_dx
  260. WHERE temp_clean_dx.clazz IN ('tel')
  261. AND obj IN (SELECT dx2 FROM temp_tel WHERE cast(IFNULL(count_num, 0) AS UNSIGNED) >= 1 GROUP BY dx2);
  262. TRUNCATE TABLE temp_dx2;
  263. INSERT INTO temp_dx2(id, class, type, bm, mc, sfz, zp, sm, main, kg, fzId)
  264. select id,
  265. class,
  266. type,
  267. bm,
  268. mc,
  269. sfz,
  270. zp,
  271. sm,
  272. main,
  273. kg,
  274. fzId
  275. from temp_dx;
  276. TRUNCATE TABLE temp_tel;
  277. INSERT INTO temp_tel(dx1, dx2, count_num, sm, sbxq, sjfx)
  278. SELECT obj1, obj2, num, sm, sbxq, sjfx
  279. FROM temp_clean_gx
  280. WHERE clazz = 'tel_tel'
  281. AND obj1 IN (SELECT bm FROM temp_dx)
  282. AND obj2 IN (SELECT bm FROM temp_dx2)
  283. GROUP BY obj1, obj2;
  284. CREATE TEMPORARY TABLE IF NOT EXISTS temp_gx
  285. (
  286. id BIGINT(20) NOT NULL AUTO_INCREMENT,
  287. clazz VARCHAR(20) DEFAULT NULL,
  288. dx1 VARCHAR(500) DEFAULT NULL,
  289. dx2 VARCHAR(500) DEFAULT NULL,
  290. mc VARCHAR(200) DEFAULT NULL,
  291. sm TEXT DEFAULT NULL,
  292. team_dx1 VARCHAR(50) DEFAULT NULL,
  293. team_dx2 VARCHAR(50) DEFAULT NULL,
  294. num VARCHAR(20) DEFAULT NULL,
  295. obj1_name VARCHAR(150) DEFAULT NULL,
  296. obj2_name VARCHAR(150) DEFAULT NULL,
  297. sbxq int(11) DEFAULT NULL,
  298. sjfx int(11) DEFAULT NULL,
  299. cs int(11) DEFAULT NULL,
  300. PRIMARY KEY (id)
  301. ) ENGINE = INNODB
  302. DEFAULT CHARSET = utf8mb4;
  303. ALTER TABLE temp_gx
  304. ADD INDEX idx_dx1 (dx1);
  305. ALTER TABLE temp_gx
  306. ADD INDEX idx_dx2 (dx1);
  307. ALTER TABLE temp_gx
  308. ADD INDEX idx_clazz (clazz);
  309. TRUNCATE TABLE temp_dx2;
  310. INSERT INTO temp_dx2(id, class, type, bm, mc, sfz, zp, sm, main, kg, fzId)
  311. select id,
  312. class,
  313. type,
  314. bm,
  315. mc,
  316. sfz,
  317. zp,
  318. sm,
  319. main,
  320. kg,
  321. fzId
  322. from temp_dx;
  323. INSERT INTO temp_gx(clazz, dx1, dx2, mc, sm, num, obj1_name, obj2_name, sbxq, cs, sjfx)
  324. SELECT clazz,
  325. obj1,
  326. obj2,
  327. gx_mc,
  328. sm,
  329. num,
  330. obj1_name,
  331. obj2_name,
  332. sbxq,
  333. cs,
  334. sjfx
  335. FROM temp_clean_gx
  336. WHERE obj1 IN (SELECT bm FROM temp_dx)
  337. AND obj2 IN (SELECT bm FROM temp_dx2)
  338. AND clazz NOT IN ('card_card', 'sfz_sfz', 'sfz_obj');
  339. SELECT *, max(dxId) as dxId0, concat(IFNULL(mc, ''), ' ', bm) as mc1
  340. FROM temp_dx
  341. group by bm;
  342. SELECT id,
  343. clazz,
  344. dx1,
  345. dx2,
  346. mc,
  347. sm,
  348. obj1_name,
  349. obj2_name
  350. FROM temp_gx
  351. where clazz not in ('card_card', 'tel_tel')
  352. group by dx1, dx2;
  353. select *
  354. from (SELECT id,
  355. clazz,
  356. dx1,
  357. dx2,
  358. SUM(cs) AS nums,
  359. SUM(num) AS money,
  360. sbxq,
  361. sjfx
  362. FROM temp_gx
  363. where clazz = 'card_card'
  364. group by dx1, dx2) as asdf
  365. where clazz = 'card_card'
  366. AND cast(IFNULL(money, 0) as decimal(38, 2)) >= 1;
  367. SELECT id,
  368. clazz,
  369. dx1,
  370. dx2,
  371. SUM(num) as nums,
  372. sm,
  373. obj1_name,
  374. obj2_name,
  375. sbxq,
  376. sjfx
  377. FROM temp_gx
  378. where clazz = 'tel_tel'
  379. group by dx1, dx2
  380. having nums >= 1;