concaténation dans une jointure - SQL/NoSQL - Programmation
Marsh Posté le 07-08-2014 à 15:16:17
J'arrive pas à voir le rapport avec une jointure et une concaténation.
Marsh Posté le 07-08-2014 à 15:38:31
la donnée est la même mais avec un 0 devant.
Pour que le left fonctionne correctement sur la donnée il me faut le rajouter
Marsh Posté le 07-08-2014 à 18:29:38
Deja, comment tu sais que ton probleme vient de la concatenation et pas autre chose? As-tu des elements a charge autre que le doigt mouille?
Si c'est vraiment le cas, j'ai jamais utilise access mais vu que c'est du Microsoft, le premier truc que je verifierais c'est les types de donnees que tu compares. Excel par exemple ne se gene pas pour faire des conversions dans tous les sens. Genre si ton D.8 est un nombre, verifies que '0'&D.8 n'est pas immediatement re-caster en un nombre (auquel cas tu 'perds' le 0 immediatement).
Marsh Posté le 08-08-2014 à 13:27:19
Salut,
je ne suis pas un pro d'Access, mais
si ta concaténation ne marche pas... c'est que tu as un soucis comme dit Lasnoufle avec des valeurs pas de même type et donc il faut "caster" uniformément, supprimer les blancs...
tu peux essayer l'inverse aussi c'est à dire de faire faire une jointure sur la valeur de c.7 après ton zéro initiale... (substr(c.7), 1 , n)
Autremenent : en décorticant ton exemple :
tu n'aurais pas un join tout simplement qui aurait aussi sauté dans tes jointures:
1.SELECT *
2.FROM
(
(
( A LEFT JOIN B ON A.1 = B.2)
LEFT JOIN C ON A.3 = C.3
LEFT JOIN E ON A.3 = E.4)
LEFT JOIN
(D LEFT JOIN E ON D.5 = E.6) ???
ON C.7 = '0' & D.8 ???
Tu n'aurais pas des soucis de parenthèses?
Ta dernière jointure elle se fait sur quoi?
Guillaume
Marsh Posté le 12-08-2014 à 15:47:06
Aucun problème et pas de Convert à réaliser étant donner que tous mes champs sont des textes.
c'est uniquement un problème au niveau de mes enregistrements dans ma table C7 la donnée est X1 et dans ma D8 j'ai la donnée 0X1.
Effectivement, bien que le substr ne fonctionne pas, je suis parti sur un left(right(C;a);b) pour récupérer uniquement ce qui m'intéresse de ma donnée
merci pour votre aide !
Le but sur ce left join est bien d'ajouter un 0 à ma donnée X1 pour que ma jointure se fasse correctement en fonction de cette donnée.
les joies d'access qui ne permettent pas de faire l'ensemble des jointures à la suite comme sous MSQL :S
Marsh Posté le 07-08-2014 à 11:18:42
voila en ce qui concerne le code en SQL sous access 2010 :
je tente de faire une concaténation sur ' ON C.7 = '0' & D.8 ' mais elle n'est pas prise en compte
comment procéder ?
merci d'avance
Message édité par xorre le 07-08-2014 à 11:28:28