Convert dans un where?

Résolu
Dark-091 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
Dark-091 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis présentement en train de faire une requête SQL. Je dois extraire des données de 3 tables différentes. Le problème c'est que dans une table l'année (PERIODE) est sous le format ''Annnn'' comme ''A1011'' pour l'année 2010-2011. C'est dans année budgétaire. Le problème c'est que dans une autre table (DD), j'ai à partir de quand tel ou tel échelle salarial entre en vigueur sous le format traditionnel (aaaammjj). En gros, la comparaison que je voudrais faire, c'est de comparer les deux années.

Quand je tente un Convert (Après avoir fait un SUBSTRING pour obtenir que les chiffres de la première année), j'obtiens une erreur. Est-ce parce que je le fait dans le WHERE et que c'est impossible? Ou est-ce moi qui est fait une erreur en écrivant ''WHERE t3.DD >= CONVERT(numeric,SUBSTRING(t2.PERIODE,2))''

Bon, vous allez me dire que ma condition, si elle fonctionnerait, ne donnerait pas le résultat voulu. Tout à fait d'accord, mais j'ai arrêter le raisonnement là en voyant que j'avais une erreur... Pourtant, si j'ai bien compris, je suis supposé comparé 2 nombres maintenant, donc pourquoi avoir une erreur?

Merci d'avance.


A voir également:

6 réponses

Dark-091 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
PS.: Il m'est impossible de modifier les tables >.<
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

"une autre table (DD) sous le format traditionnel (aaaammjj)."

C'est un format texte ou numerique dans la structure de la table????
0
Dark-091 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
t3.DD est sous format ''numéric'' tandis que t2.PERIODE est en chaine de caractère.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

en mysql cela donne:

CONVERT((t3.DD/10000)-2000,signed) pour ex: 10 de 20101212 !!!attention si annee inferieur a 2000!!!

CONVERT(SUBSTRING(t2.periode,2 ,2),signed) pour ex: 10 de A1011 si vous voulez la 1ere annee

Bonne suite
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dark-091 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Moi qui croyais que le premier argument de CONVERT devais être le type de donné >.<
J'essaie tous de suite et je vous tien au courant.
Merci beaucoup!
0
Dark-091 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Ouais ok sa fonctionne.
Merci infiniment!
0