Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 882 | Rev 893 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 882 Rev 892
Line 6... Line 6...
6
 
6
 
7
Pour éviter un maximum de faux-positifs, nous vérifions aussi que la famille
7
Pour éviter un maximum de faux-positifs, nous vérifions aussi que la famille
8
est conservée (même dans certains cas celle-ci a légitimement changé) et que
8
est conservée (même dans certains cas celle-ci a légitimement changé) et que
9
la première partie du nom_sel correspond toujours à la première partie du nouveau nom_sci
9
la première partie du nom_sel correspond toujours à la première partie du nouveau nom_sci
10
qui serait attribué.
-
 
Line 11... Line 10...
11
*/
10
qui serait attribué.
12
 
-
 
13
--- la requête ---
11
 
14
/*
12
-- la requête --
15
-- SELECT id_observation, b.num_nom, CONCAT(b.nom_sci, ' ', b.auteur), b.num_taxonomique, b.famille
13
-- SELECT id_observation, b.num_nom, CONCAT(b.nom_sci, ' ', b.auteur), b.num_taxonomique, b.famille
16
SELECT id_observation, nom_ret, nom_ret_nn, nt, c.famille
14
SELECT id_observation, nom_ret, nom_ret_nn, nt, c.famille
17
   FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b
15
   FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b
18
   WHERE (
16
   WHERE (
19
        nom_sel_nn IS NOT NULL
17
        nom_sel_nn IS NOT NULL
20
        AND nom_referentiel like 'bdtfx%'
18
        AND nom_referentiel like 'bdtfx%'
21
        AND nom_sel_nn = num_nom
19
        AND nom_sel_nn = num_nom
-
 
20
       )
-
 
21
   ORDER BY id_observation asc;
-
 
22
 
-
 
23
 
-
 
24
Cependant le nom_sel_nn n'est pas directement le num_num du taxon dont le nom est
-
 
25
retenu. Pour cela, une jointure en bdtfx sur num_nom_retenu est nécessaire et c'est
-
 
26
ce dernier taxon dont le num_nom est utilisé pour nom_ret_nn.
-
 
27
Cependant il peut aussi être vide (si aucun nom_retenu "officiel" n'existe).
-
 
28
 
-
 
29
Attention, les nom_sel_nn = 0 doivent avoir disparus de cel_obs *AU PRÉALABLE*
-
 
30
cf: maj-cleanup-201307.sql
-
 
31
*/
-
 
32
 
-
 
33
 
-
 
34
 
-
 
35
/* test:
-
 
36
   SELECT c.nom_ret_nn, c.nom_ret, b.nom_sci, b.auteur, c.famille, b.famille, c.nt, b.num_taxonomique
-
 
37
   FROM  cel_obs c, tb_eflore.bdtfx_v1_01 b
-
 
38
   WHERE (
-
 
39
        nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
-
 
40
        AND nom_referentiel = 'bdtfx'
-
 
41
        AND nom_ret_nn = num_nom
-
 
42
        AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL)
-
 
43
        AND (c.famille != b.famille OR c.nom_ret != CONCAT(b.nom_sci, ' ', b.auteur) OR c.nt != b.num_taxonomique)
22
       )
44
       );
Line 23... Line 45...
23
   ORDER BY id_observation asc;
45
   = 2 taxons: 75134 et 75468 (changement de nt)
24
*/
46
*/
25
 
47
 
-
 
48
-- l'update BDTFX avec nom_sel_nn et nom_ret_nn corrects
-
 
49
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b SET
-
 
50
       c.nom_ret = CONCAT(b.nom_sci, ' ', b.auteur),
-
 
51
       c.nt = b.num_taxonomique,
-
 
52
       c.famille = b.famille
-
 
53
   WHERE (
-
 
54
        nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
-
 
55
        AND nom_referentiel = 'bdtfx'
-
 
56
        AND nom_ret_nn = num_nom
-
 
57
        AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL)
-
 
58
       );
-
 
59
-- 339
-
 
60
 
-
 
61
/* test:
-
 
62
   SELECT c.nom_ret_nn, c.nom_ret, bLAST.num_nom, bLAST.nom_sci, bLAST.auteur, c.famille, bLAST.famille, c.nt, bLAST.num_taxonomique
-
 
63
   FROM  cel_obs c, tb_eflore.bdtfx_v1_01 b, tb_eflore.bdtfx_v1_01 bLAST
-
 
64
   WHERE (
-
 
65
         bLAST.num_nom = b.num_nom_retenu
-
 
66
         AND nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0 AND nom_referentiel = 'bdtfx'
-
 
67
         AND nom_ret_nn = bLAST.num_nom
-
 
68
         AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL)
-
 
69
         AND (c.famille != b.famille OR c.nom_ret != CONCAT(bLAST.nom_sci, ' ', bLAST.auteur) OR c.nt != b.num_taxonomique OR c.nom_ret_nn != bLAST.num_nom)
-
 
70
   );
-
 
71
*/
-
 
72
 
26
--- l'update ---
73
-- l'update BDTFX avec nom_sel_nn seul
27
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b SET
74
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b, `BASESOURCE`.`TABLEBDTFX` b_nom_ret SET
28
       c.nom_ret = CONCAT(b.nom_sci, ' ', b.auteur),
75
       c.nom_ret = CONCAT(b_nom_ret.nom_sci, ' ', b_nom_ret.auteur),
29
       c.nom_ret_nn = b.num_nom,
76
       c.nom_ret_nn = b.num_nom,
-
 
77
       c.nt = b.num_taxonomique,
30
       c.nt = b.num_taxonomique,
78
       c.famille = b.famille
31
       c.famille = b.famille
79
   WHERE (
32
   WHERE (
80
        b_nom_ret.num_nom = b.num_nom_retenu
33
        nom_sel_nn IS NOT NULL
81
        AND nom_sel_nn IS NOT NULL
34
        AND nom_referentiel = 'bdtfx'
82
        AND nom_referentiel = 'bdtfx'
35
        AND nom_sel_nn = num_nom
83
        AND nom_sel_nn = b.num_nom
36
        AND LOWER(c.famille) = LOWER(b.famille)
-
 
37
        AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(b.nom_sci, ' ', 1) 
84
        AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL)
Line -... Line 85...
-
 
85
        AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(b.nom_sci, ' ', 1) 
-
 
86
       );
-
 
87
-- 251 avec indirection num_nom_retenu
-
 
88
 
-
 
89
 
-
 
90
-- l'update BDTXA avec nom_sel_nn et nom_ret_nn corrects  --
-
 
91
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTXA` a SET
-
 
92
       c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
-
 
93
       c.nt = a.num_tax,
-
 
94
       c.famille = a.famille
-
 
95
   WHERE (
-
 
96
        nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
-
 
97
        AND nom_referentiel = 'bdtxa'
-
 
98
        AND nom_ret_nn = num_nom
-
 
99
        AND (LOWER(c.famille) = LOWER(a.famille) OR c.famille IS NULL)
38
       );
100
       );
39
-- 31739 sans les restrictions sur famille et SUBSTRING_INDEX()
101
-- 1
40
-- 31524 avec les restrictions sur famille et SUBSTRING_INDEX()
102
 
41
 
103
/*TODO
42
 
104
-- l'update BDTXA avec nom_sel_nn seul
43
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTXA` a SET
105
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTXA` a SET
44
       c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
106
       c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
45
       c.nom_ret_nn = a.num_nom,
107
       c.nom_ret_nn = a.num_nom,
46
       c.nt = a.num_tax,
108
       c.nt = a.num_tax,
47
       c.famille = a.famille
109
       c.famille = a.famille
48
   WHERE (
110
   WHERE (
49
        nom_sel_nn IS NOT NULL
111
        nom_sel_nn IS NOT NULL
50
        AND nom_referentiel = 'bdtxa'
112
        AND nom_referentiel = 'bdtxa'
51
        AND nom_sel_nn = num_nom
113
        AND nom_sel_nn = num_nom
-
 
114
        AND (LOWER(c.famille) = LOWER(a.famille) OR c.famille IS NULL)
-
 
115
        AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(a.nom_sci, ' ', 1) 
Line -... Line 116...
-
 
116
       );
-
 
117
-- 49 sans les restrictions sur famille et SUBSTRING_INDEX()
-
 
118
-- 47 avec les restrictions sur famille et SUBSTRING_INDEX()
-
 
119
*/
-
 
120
 
-
 
121
 
-
 
122
-- l'update ISFAN avec nom_sel_nn et nom_ret_nn corrects  --
-
 
123
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEISFAN` i SET
-
 
124
       c.nom_ret = CONCAT(i.nom_sci, ' ', i.auteur),
-
 
125
       c.nt = i.num_taxonomique,
-
 
126
       c.famille = i.famille
-
 
127
   WHERE (
-
 
128
        nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
-
 
129
        AND nom_referentiel = 'isfan'
-
 
130
        AND nom_ret_nn = num_nom
52
        AND LOWER(c.famille) = LOWER(a.famille)
131
        AND (LOWER(c.famille) = LOWER(i.famille) OR c.famille IS NULL)
53
        AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(a.nom_sci, ' ', 1) 
132
       );
54
       );
133
-- 2
55
-- 49 sans les restrictions sur famille et SUBSTRING_INDEX()
134
 
56
-- 47 avec les restrictions sur famille et SUBSTRING_INDEX()
135
/*TODO
57
 
136
-- l'update ISFAN avec nom_sel_nn seul
58
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEISFAN` i SET
137
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEISFAN` i SET
59
       c.nom_ret = CONCAT(i.nom_sci, ' ', i.auteur),
138
       c.nom_ret = CONCAT(i.nom_sci, ' ', i.auteur),
60
       c.nom_ret_nn = i.num_nom,
139
       c.nom_ret_nn = i.num_nom,
-
 
140
       c.nt = i.num_taxonomique,
61
       c.nt = i.num_taxonomique,
141
       c.famille = i.famille
62
       c.famille = i.famille
142
   WHERE (
Line 63... Line 143...
63
   WHERE (
143
        nom_sel_nn IS NOT NULL
64
        nom_sel_nn IS NOT NULL
144
        AND nom_referentiel = 'isfan'
65
        AND nom_referentiel = 'isfan'
145
        AND nom_sel_nn = num_nom
66
        AND nom_sel_nn = num_nom
146
        AND (LOWER(c.famille) = LOWER(i.famille) OR c.famille IS NULL)