Bonjour,

Un autre problème en ce jour sur lequel je me casse la tête depuis ce matin.

J'ai une table avec un codepostal et une autre un code commune, dans la première je souhaiterais remplacer le codepostal par le code commune correspondant.
Mon problème est qu'il ne veux pas me faire ça, il m'associe une foule de code commune pour un codepostal, ce qui devrait être l'inverse normalement !

Voici mes différentes requêtes et extrait de table.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
CREATE TABLE SRC9 AS (SELECT DISTINCT SNP AS SNAP, APET700 AS NAF, SIRET,NOMEN AS NOM,CODPOS,LIBCOM AS COMMUNE, SIEGE,IF(TEFET<32,E.VALUE,EFETCENT) AS EFFECTIF
FROM SIRENE S
INNER JOIN EFFECTIF E ON S.TEFET=E.TRANCHE
INNER JOIN `NAF-SNAP` N ON S.APET700 = N.NAF);
Cela permet de créer une table contenant un codepostal.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
CREATE TABLE SRC6 AS (SELECT SNAP,NAF,SIRET,NOM,CCM,COMMUNE,SIEGE,EFFECTIF FROM SRC9 S,CCT_CCM C WHERE C.CDP=S.CODPOS);
Celle-ci permet de transformer le code postal en code commune. C'est la que ça coince.

Voilà ce qu'il me sort :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
+----------+------+----------------+--------------------------------+--------+-------+----------------------+-------+----------+
| SNAP     | NAF  | SIRET          | NOM                            | CODPOS | CCM   | COMMUNE              | SIEGE | EFFECTIF |
+----------+------+----------------+--------------------------------+--------+-------+----------------------+-------+----------+
| 02 01 10 | 631E | 00602001000051 | ETABLISSEMENTS FROMENTIN       | 62140  | 62046 | AUBIN SAINT VAAST    | 0     | 35       |
| 02 01 10 | 631E | 00602001000051 | ETABLISSEMENTS FROMENTIN       | 62140  | 62175 | AUBIN SAINT VAAST    | 0     | 35       |
| 02 01 10 | 631E | 00602001000051 | ETABLISSEMENTS FROMENTIN       | 62140  | 62212 | AUBIN SAINT VAAST    | 0     | 35       |
| 02 01 10 | 631E | 00602001000051 | ETABLISSEMENTS FROMENTIN       | 62140  | 62219 | AUBIN SAINT VAAST    | 0     | 35       |
| 02 01 10 | 631E | 00602001000051 | ETABLISSEMENTS FROMENTIN       | 62140  | 62220 | AUBIN SAINT VAAST    | 0     | 35       |
| 02 01 10 | 631E | 00602001000051 | ETABLISSEMENTS FROMENTIN       | 62140  | 62222 | AUBIN SAINT VAAST    | 0     | 35       |
| 02 01 10 | 631E | 00602001000051 | ETABLISSEMENTS FROMENTIN       | 62140  | 62359 | AUBIN SAINT VAAST    | 0     | 35       |
| 02 01 10 | 631E | 00602001000051 | ETABLISSEMENTS FROMENTIN       | 62140  | 62388 | AUBIN SAINT VAAST    | 0     | 35       |
| 02 01 10 | 631E | 00602001000051 | ETABLISSEMENTS FROMENTIN       | 62140  | 62395 | AUBIN SAINT VAAST    | 0     | 35       |
Normalement, cet enregistrement ne devrait apparaître qu'une seule fois.

Le fait d'utiliser un DISTINCT dans la seconde requête me fait perdre des données pour je ne sais quelle raison.

Voici un extrait des tables que j'utilise :

Table CCT_CCM :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
+--------+--------------+--------------------+-------------------+-----------------+----------------------+------+---------------+---------+-------+-------+-----------+---------+------------+----------------+---------------+---------------+----------+
| Numero | INSEE_REGION | NOM_REGION         | INSEE_DEPARTEMENT | NOM_DEPARTEMENT | INSEE_ARRONDISSEMENT | CCT  | CAN           | SUP_CAN | CCM   | CDP   | COM       | SUP_COM | POPULATION | NOM_ZAS        | CODE_ZAS_EURO | CODE_ZAS_PSQA | CODE_PPA |
+--------+--------------+--------------------+-------------------+-----------------+----------------------+------+---------------+---------+-------+-------+-----------+---------+------------+----------------+---------------+---------------+----------+
|      1 |     31.00000 | NORD-PAS-DE-CALAIS |          59.00000 | NORD            |              2.00000 | 5914 | CAMBRAI OUEST |    9018 | 59001 | 59268 | ABANCOURT |     567 |  400.00000 | TERRITOIRENPDC | FR11N00002    | PSQA08        | NULL     |
+--------+--------------+--------------------+-------------------+-----------------+----------------------+------+---------------+---------+-------+-------+-----------+---------+------------+----------------+---------------+---------------+----------+
Table Sirene :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
+--------+--------------+--------------------+-------------------+-----------------+----------------------+------+---------------+---------+-------+-------+-----------+---------+------------+----------------+---------------+---------------+----------+
| Numero | INSEE_REGION | NOM_REGION         | INSEE_DEPARTEMENT | NOM_DEPARTEMENT | INSEE_ARRONDISSEMENT | CCT  | CAN           | SUP_CAN | CCM   | CDP   | COM       | SUP_COM | POPULATION | NOM_ZAS        | CODE_ZAS_EURO | CODE_ZAS_PSQA | CODE_PPA |
+--------+--------------+--------------------+-------------------+-----------------+----------------------+------+---------------+---------+-------+-------+-----------+---------+------------+----------------+---------------+---------------+----------+
|      1 |     31.00000 | NORD-PAS-DE-CALAIS |          59.00000 | NORD            |              2.00000 | 5914 | CAMBRAI OUEST |    9018 | 59001 | 59268 | ABANCOURT |     567 |  400.00000 | TERRITOIRENPDC | FR11N00002    | PSQA08        | NULL     |
+--------+--------------+--------------------+-------------------+-----------------+----------------------+------+---------------+---------+-------+-------+-----------+---------+------------+----------------+---------------+---------------+----------+
Merci