Convert dans un where?

Résolu/Fermé
Dark-091 Messages postés 6 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 17 janvier 2012 - 16 janv. 2012 à 21:27
Dark-091 Messages postés 6 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 17 janvier 2012 - 17 janv. 2012 à 19:34
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 lundi 16 janvier 2012 Statut Membre Dernière intervention 17 janvier 2012
17 janv. 2012 à 16:10
PS.: Il m'est impossible de modifier les tables >.<
0
f894009 Messages postés 17239 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 février 2025 1 713
17 janv. 2012 à 16:24
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 lundi 16 janvier 2012 Statut Membre Dernière intervention 17 janvier 2012
17 janv. 2012 à 16:38
t3.DD est sous format ''numéric'' tandis que t2.PERIODE est en chaine de caractère.
0
f894009 Messages postés 17239 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 février 2025 1 713
17 janv. 2012 à 17:52
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 lundi 16 janvier 2012 Statut Membre Dernière intervention 17 janvier 2012
17 janv. 2012 à 19:05
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 lundi 16 janvier 2012 Statut Membre Dernière intervention 17 janvier 2012
17 janv. 2012 à 19:34
Ouais ok sa fonctionne.
Merci infiniment!
0