Bonjour à tous,
Le débutant est de retour.
J'ai une nouvelle question peut être simple mais je ne trouve pas la solution.
Voilà en fait j'ai 2 tables :
apcom_poteaux
num_pot insee 2012953 69014 1 69014 807500 69014 E000357 69014
dossier_apcom
ref_ope insee appuis ET_CAPFT_UIAURA_69095_SSC_PM40655_PA77563_PB86087 69014 807500, 807501, 807502, 807503, 807504 ET_IMPL_UIAURA_69095_SSC_PM40655_PA77563_PB86087 69014 2012953, 2012952, 2012950, 2012951, 2012954 ET_FTTH_UIAURA_69095_SSC_PM40655_PA77563_PB86060 69014 E000357, E000356, E000345, E000346, E000349, E000350, E000351, E000352, E000353, E000354 ET_CAPFT_UIAURA_69014_SFA_PMZ56201_PA99901_PB105642 69014 310384, 310385, 310386, 310387, 310388, 310390, 000001, 310455, 310456, 310391, 310392, 310393, 310394, 310395
A savoir que normalement le format de la donnée num_pot devrait faire 7 caractères mais en fait il s'avère que dans la réalité c'est pas le cas j'ai des num_pot qui ont entre 1 et 7 caractères.
Voilà et ce que j'essai d'obtenir c'est ça :
num_pot insee ref_ope 2012953 69014 ET_IMPL_UIAURA_69095_SSC_PM40655_PA77563_PB86087 1 69014 ET_CAPFT_UIAURA_69014_SFA_PMZ56201_PA99901_PB105642 807500 69014 ET_CAPFT_UIAURA_69095_SSC_PM40655_PA77563_PB86087 E000357 69014 ET_FTTH_UIAURA_69095_SSC_PM40655_PA77563_PB86060
Au départ j'ai essayé la requête suivante :
Mais ca ne marche pas ça retrouvais tous 1 même au milieu des nombres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select a.num_pot as num_pot,a.insee as insee, doss.ref_ope from apcom_poteaux a left join apcom_dossier doss on doss.insee=a.insee and doss.appuis like concat('%',a.num_pot,'%')
Donc j'étais passé sur cette requête :
Mais ici lorsque les nombres font moins de 7 caractères je ne les trouve pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select a.num_pot as num_pot,a.insee as insee, doss.ref_ope from apcom_poteaux a left join apcom_dossier doss on doss.insee=a.insee and doss.appuis like concat('%',LPAD(a.num_pot, 7, '0'),'%')
Donc j'en suis à me dire qu'il faudrait que je prenne mon champ 'appuis' que je le convertisse en un tableau en séparant au niveau des ','. Puis je reformate chaque morceaux du tableau pour avoir 7 caractères avec LPAD et enfin je fais ma recherche.
Mais très franchement je ne vois pas du tout comment faire ça en sql. Après peut être qu'il y a plus simple.
Vous auriez des idées ?
Partager