Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 816 Rev 818
Line 2... Line 2...
2
À l'origine les observations nécessiteuses sont celles n'ayant pas de données génénées,
2
À l'origine les observations nécessiteuses sont celles n'ayant pas de données génénées,
3
Soit: nom_ret, nom_ret_nn, nt ou famille à NULL|0|''
3
Soit: nom_ret, nom_ret_nn, nt ou famille à NULL|0|''
Line 4... Line 4...
4
 
4
 
5
Eg:
5
Eg:
6
	SELECT id_observation, nom_sel 
6
	SELECT id_observation, nom_sel 
7
	FROM `BASEEDIT`.`cel_obs` 
7
	FROM `tb_cel_test`.`cel_obs` 
8
	WHERE ( 
8
	WHERE ( 
9
		nom_ret IS NULL or nom_ret = ''
9
		nom_ret IS NULL or nom_ret = ''
10
		OR nom_ret_nn IS NULL or nom_ret_nn = 0
10
		OR nom_ret_nn IS NULL or nom_ret_nn = 0
11
		OR nt IS NULL or nt = 0
11
		OR nt IS NULL or nt = 0
Line 20... Line 20...
20
3) on exclue, dans un premier temps, celles dont le référentiel n'est pas défini
20
3) on exclue, dans un premier temps, celles dont le référentiel n'est pas défini
21
AND (nom_referentiel IS NULL)
21
AND (nom_referentiel IS NULL)
Line 22... Line 22...
22
 
22
 
23
D'où, les 3621 observations suivantes (2206 nom_sel distincts)
23
D'où, les 3621 observations suivantes (2206 nom_sel distincts)
24
 SELECT id_observation, nom_sel 
24
 SELECT id_observation, nom_sel 
25
 FROM `BASEEDIT`.`cel_obs` 
25
 FROM `tb_cel_test`.`cel_obs` 
26
 WHERE (
26
 WHERE (
27
        nom_sel IS NOT NULL AND nom_sel != ''
27
        nom_sel IS NOT NULL AND nom_sel != ''
28
        AND (
28
        AND (
29
            nom_ret IS NULL OR nom_ret = ''
29
            nom_ret IS NULL OR nom_ret = ''
Line 40... Line 40...
40
        AND (nom_referentiel like 'bdtfx%')
40
        AND (nom_referentiel like 'bdtfx%')
41
soit 3597/3621 observations:
41
soit 3597/3621 observations:
Line 42... Line 42...
42
 
42
 
43
Et effectuons une jointure sur bdtfx:
43
Et effectuons une jointure sur bdtfx:
44
SELECT id_observation, nom_sel, b.num_nom, b.famille
44
SELECT id_observation, nom_sel, b.num_nom, b.famille
45
   FROM `BASEEDIT`.`cel_obs` c INNER JOIN `BASESOURCE`.`bdtfx_v1_01` b ON (b.nom_sci = c.nom_sel)
45
   FROM `tb_cel_test`.`cel_obs` c INNER JOIN `tb_eflore`.`bdtfx_v1_01` b ON (b.nom_sci = c.nom_sel)
46
   WHERE (
46
   WHERE (
47
        nom_sel IS NOT NULL AND nom_sel != ''
47
        nom_sel IS NOT NULL AND nom_sel != ''
48
        AND (
48
        AND (
49
            nom_ret IS NULL OR nom_ret = ''
49
            nom_ret IS NULL OR nom_ret = ''
Line 66... Line 66...
66
Il s'agit donc de ne pas traiter ceux qui risquerait d'être mal-corrigé (sans les 100% de certitude).
66
Il s'agit donc de ne pas traiter ceux qui risquerait d'être mal-corrigé (sans les 100% de certitude).
67
Ainsi un ` GROUP BY id_observation HAVING count(id_observation) = 1 ` sera du meilleur effet.
67
Ainsi un ` GROUP BY id_observation HAVING count(id_observation) = 1 ` sera du meilleur effet.
Line 68... Line 68...
68
 
68
 
69
Nous obtenons donc ainsi les 69 observations à mettre à jour:
69
Nous obtenons donc ainsi les 69 observations à mettre à jour:
70
SELECT id_observation, nom_sel, nom_ret, nom_ret_nn, nt, c.famille, b.num_nom, b.nom_sci, b.num_taxonomique, b.famille
70
SELECT id_observation, nom_sel, nom_ret, nom_ret_nn, nt, c.famille, b.num_nom, b.nom_sci, b.num_taxonomique, b.famille
71
   FROM `BASEEDIT`.`cel_obs` c INNER JOIN `BASESOURCE`.`bdtfx_v1_01` b ON (b.nom_sci = c.nom_sel)
71
   FROM `tb_cel_test`.`cel_obs` c INNER JOIN `tb_eflore`.`bdtfx_v1_01` b ON (b.nom_sci = c.nom_sel)
72
   WHERE (
72
   WHERE (
73
        nom_sel IS NOT NULL AND nom_sel != ''
73
        nom_sel IS NOT NULL AND nom_sel != ''
74
        AND (
74
        AND (
75
            nom_ret IS NULL OR nom_ret = ''
75
            nom_ret IS NULL OR nom_ret = ''
Line 89... Line 89...
89
=== finale ===
89
=== finale ===
90
*/
90
*/
Line 91... Line 91...
91
 
91
 
92
CREATE TEMPORARY TABLE T_bis ( INDEX(`id_observation`)) AS 
92
CREATE TEMPORARY TABLE T_bis ( INDEX(`id_observation`)) AS 
93
SELECT id_observation, b.num_nom, CONCAT(b.nom_sci, ' ', b.auteur), b.num_taxonomique, b.famille
93
SELECT id_observation, b.num_nom, CONCAT(b.nom_sci, ' ', b.auteur), b.num_taxonomique, b.famille
94
   FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`bdtfx_v1_01` b
94
   FROM `tb_cel_test`.`cel_obs` c, `tb_eflore`.`bdtfx_v1_01` b
95
   WHERE (
95
   WHERE (
96
        b.nom_sci = c.nom_sel
96
        b.nom_sci = c.nom_sel
97
        AND nom_sel IS NOT NULL AND nom_sel != ''
97
        AND nom_sel IS NOT NULL AND nom_sel != ''
98
        AND (
98
        AND (
Line 103... Line 103...
103
            )
103
            )
104
        AND (nom_referentiel like 'bdtfx%')
104
        AND (nom_referentiel like 'bdtfx%')
105
       )
105
       )
106
   GROUP BY id_observation HAVING count(id_observation) = 1
106
   GROUP BY id_observation HAVING count(id_observation) = 1
Line 107... Line 107...
107
 
107
 
108
UPDATE `BASEEDIT`.`cel_obs` c, T_bis t SET
108
UPDATE `tb_cel_test`.`cel_obs` c, T_bis t SET
109
       c.nom_ret = t.nom_sci,
109
       c.nom_ret = t.nom_sci,
110
       c.nom_ret_nn = t.num_nom,
110
       c.nom_ret_nn = t.num_nom,
111
       c.nt = t.num_taxonomique,
111
       c.nt = t.num_taxonomique,
112
       c.famille = t.famille
112
       c.famille = t.famille