Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 828 Rev 882
Line 1... Line 1...
1
/*
1
/*
2
Objectif: prendre les observations dont nom_sel_nn est défini
2
Objectif: prendre les observations dont nom_sel_nn est défini
3
(et donc dans laquelles les informations générées sont correctes)
3
(et donc dans laquelles les informations générées sont correctes)
4
et mettre à jour ces dernières à partir de la dernière version du référentiel
4
et mettre à jour ces dernières à partir de la dernière version du référentiel
5
(bdtfx et bdtxa).
5
(bdtfx, bdtxa et isfan).
-
 
6
 
-
 
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
-
 
9
la première partie du nom_sel correspond toujours à la première partie du nouveau nom_sci
-
 
10
qui serait attribué.
6
*/
11
*/
Line 7... Line 12...
7
 
12
 
8
--- la requête ---
13
--- la requête ---
9
/*
14
/*
10
-- SELECT id_observation, b.num_nom, CONCAT(b.nom_sci, ' ', b.auteur), b.num_taxonomique, b.famille
15
-- SELECT id_observation, b.num_nom, CONCAT(b.nom_sci, ' ', b.auteur), b.num_taxonomique, b.famille
11
SELECT id_observation, nom_ret, nom_ret_nn, nt, c.famille
16
SELECT id_observation, nom_ret, nom_ret_nn, nt, c.famille
12
   FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b
17
   FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b
13
   WHERE (
18
   WHERE (
14
        nom_sel_nn IS NOT NULL AND nom_sel_nn != 0
19
        nom_sel_nn IS NOT NULL
15
        AND nom_referentiel like 'bdtfx%'
20
        AND nom_referentiel like 'bdtfx%'
16
        AND nom_sel_nn = num_nom
21
        AND nom_sel_nn = num_nom
17
       )
22
       )
18
   ORDER BY id_observation asc;
23
   ORDER BY id_observation asc;
Line 23... Line 28...
23
       c.nom_ret = CONCAT(b.nom_sci, ' ', b.auteur),
28
       c.nom_ret = CONCAT(b.nom_sci, ' ', b.auteur),
24
       c.nom_ret_nn = b.num_nom,
29
       c.nom_ret_nn = b.num_nom,
25
       c.nt = b.num_taxonomique,
30
       c.nt = b.num_taxonomique,
26
       c.famille = b.famille
31
       c.famille = b.famille
27
   WHERE (
32
   WHERE (
28
        nom_sel_nn IS NOT NULL AND nom_sel_nn != 0
33
        nom_sel_nn IS NOT NULL
29
        AND nom_referentiel like 'bdtfx%'
34
        AND nom_referentiel = 'bdtfx'
30
        AND nom_sel_nn = num_nom
35
        AND nom_sel_nn = num_nom
31
        AND LOWER(c.famille) = LOWER(b.famille)
36
        AND LOWER(c.famille) = LOWER(b.famille)
32
        AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(b.nom_sci, ' ', 1) 
37
        AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(b.nom_sci, ' ', 1) 
33
       );
38
       );
34
-- 31739 sans les restrictions sur famille et SUBSTRING_INDEX()
39
-- 31739 sans les restrictions sur famille et SUBSTRING_INDEX()
Line 39... Line 44...
39
       c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
44
       c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
40
       c.nom_ret_nn = a.num_nom,
45
       c.nom_ret_nn = a.num_nom,
41
       c.nt = a.num_tax,
46
       c.nt = a.num_tax,
42
       c.famille = a.famille
47
       c.famille = a.famille
43
   WHERE (
48
   WHERE (
44
        nom_sel_nn IS NOT NULL AND nom_sel_nn != 0
49
        nom_sel_nn IS NOT NULL
45
        AND nom_referentiel like 'bdtxa%'
50
        AND nom_referentiel = 'bdtxa'
46
        AND nom_sel_nn = num_nom
51
        AND nom_sel_nn = num_nom
47
        AND LOWER(c.famille) = LOWER(a.famille)
52
        AND LOWER(c.famille) = LOWER(a.famille)
48
        AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(a.nom_sci, ' ', 1) 
53
        AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(a.nom_sci, ' ', 1) 
49
       );
54
       );
50
-- 49 sans les restrictions sur famille et SUBSTRING_INDEX()
55
-- 49 sans les restrictions sur famille et SUBSTRING_INDEX()
51
-- 47 avec les restrictions sur famille et SUBSTRING_INDEX()
56
-- 47 avec les restrictions sur famille et SUBSTRING_INDEX()
Line 52... Line 57...
52
 
57
 
53
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`isfan_v2013` a SET
58
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEISFAN` i SET
54
       c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
59
       c.nom_ret = CONCAT(i.nom_sci, ' ', i.auteur),
55
       c.nom_ret_nn = a.num_nom,
60
       c.nom_ret_nn = i.num_nom,
56
       c.nt = a.num_taxonomique,
61
       c.nt = i.num_taxonomique,
57
       c.famille = a.famille
62
       c.famille = i.famille
58
   WHERE (
63
   WHERE (
59
        nom_sel_nn IS NOT NULL AND nom_sel_nn != 0
64
        nom_sel_nn IS NOT NULL
60
        AND nom_referentiel like 'isfan%'
65
        AND nom_referentiel = 'isfan'
61
        AND nom_sel_nn = num_nom
66
        AND nom_sel_nn = num_nom
Line 62... Line 67...
62
       );
67
       );