OVH Cloud OVH Cloud

Modification requete sql

4 réponses
Avatar
FabSteg
Bonjour,

J'ai un problème concernant une requête sql formater pour fonctionner sous
Oracle mais apparement pas sous Hyperfile :
"select max(TO_NUMBER(num_bon_commande)) as res from commande_fournisseur"

voici l'erreur à l'éxécution : Mot ( inattendu
je pense qu'il n'apprécie pas le TO_NUMBER qui me sert à convertir mon champ
chaine num_bon_commande en reel.
Si j'enleve le TO_NUMBER la requete fonctionne mais ne me retourne pas le
résultat espéré, en effet si ma table contient :
1
8
12
je desirerai avoir comme résultat 12 mais sans le TO_NUMBER, c'est le 8

Auriez-vous une idée pour que je puisse modifier ma requete et avoir un
résultat correct ?

Merci

FabSteg

4 réponses

Avatar
jacques.trepp
FabSteg a formulé ce lundi :
Bonjour,

J'ai un problème concernant une requête sql formater pour fonctionner sous
Oracle mais apparement pas sous Hyperfile :
"select max(TO_NUMBER(num_bon_commande)) as res from commande_fournisseur"

voici l'erreur à l'éxécution : Mot ( inattendu
je pense qu'il n'apprécie pas le TO_NUMBER qui me sert à convertir mon champ
chaine num_bon_commande en reel.
Si j'enleve le TO_NUMBER la requete fonctionne mais ne me retourne pas le
résultat espéré, en effet si ma table contient :
1
8
12
je desirerai avoir comme résultat 12 mais sans le TO_NUMBER, c'est le 8

Auriez-vous une idée pour que je puisse modifier ma requete et avoir un
résultat correct ?



Bonjour
je pense que le max fait référence à la chaine de caractère avant
conversion en numérique, d'où l'ordre de classement 1, 12, 8.
Ne peux-tu pas compléter tes chaines avec des 0 ?
001,008,012 serait classé correctement quelque soit le format de la
colonne.
cordialement

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Roumegou Eric
FabSteg a émis l'idée suivante :
Bonjour,

J'ai un problème concernant une requête sql formater pour fonctionner sous
Oracle mais apparement pas sous Hyperfile :
"select max(TO_NUMBER(num_bon_commande)) as res from commande_fournisseur"

voici l'erreur à l'éxécution : Mot ( inattendu
je pense qu'il n'apprécie pas le TO_NUMBER qui me sert à convertir mon champ
chaine num_bon_commande en reel.
Si j'enleve le TO_NUMBER la requete fonctionne mais ne me retourne pas le
résultat espéré, en effet si ma table contient :
1
8
12
je desirerai avoir comme résultat 12 mais sans le TO_NUMBER, c'est le 8



je ne vais pas encore te titiller sur la modélisation des données car
si je me souviens bien tu récupères un modèle et tu subis cette
situation. Mais juste pour dire qu'à utiliser de l'alpha où l'on a
besoin de numérique, c'est "pas bien!".
Un sgbd est plus performant pour gérer du numérique et en plus quand on
appelle sa zone num_bon_commande, on a pas d'excuse.
Cette parenthèse fermée, effectivement le TO_NUMBER, comme le TO_CHAR
et le très utile TO_DATE sont des instructions spécifiques à Oracle.

L'équivalent de TO_NUMBER est en mysql cast. Peut être est-ce accepté
en HF?
Essaie peut être aussi les instructions du wdlangage.

Sinon, tu peux peut être en profiter pour transformer ta zone en vrai
numérique
QQ liens utiles :
http://www.asp-php.net/tutorial/asp-php/equivalences_sql.php
et aussi http://sqlzoo.net/

Auriez-vous une idée pour que je puisse modifier ma requete et avoir un
résultat correct ?

Merci

FabSteg



--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
FabSteg
N'aurais-je vraiment pas d'autres solutions que la modification du modele,
car l'équivalent Mysql n'est pas accepté non plus.
Je vais finir par prendre du retard sur mon planning avec toutes ces
modifications à faire.
C'est incroyable comme Oracle à réussi à se créer son propre langage SQL.

Merci quand même

FabSteg

"Roumegou Eric" a écrit dans le message de
news:
FabSteg a émis l'idée suivante :
> Bonjour,
>
> J'ai un problème concernant une requête sql formater pour fonctionner


sous
> Oracle mais apparement pas sous Hyperfile :
> "select max(TO_NUMBER(num_bon_commande)) as res from


commande_fournisseur"
>
> voici l'erreur à l'éxécution : Mot ( inattendu
> je pense qu'il n'apprécie pas le TO_NUMBER qui me sert à convertir mon


champ
> chaine num_bon_commande en reel.
> Si j'enleve le TO_NUMBER la requete fonctionne mais ne me retourne pas


le
> résultat espéré, en effet si ma table contient :
> 1
> 8
> 12
> je desirerai avoir comme résultat 12 mais sans le TO_NUMBER, c'est le 8

je ne vais pas encore te titiller sur la modélisation des données car
si je me souviens bien tu récupères un modèle et tu subis cette
situation. Mais juste pour dire qu'à utiliser de l'alpha où l'on a
besoin de numérique, c'est "pas bien!".
Un sgbd est plus performant pour gérer du numérique et en plus quand on
appelle sa zone num_bon_commande, on a pas d'excuse.
Cette parenthèse fermée, effectivement le TO_NUMBER, comme le TO_CHAR
et le très utile TO_DATE sont des instructions spécifiques à Oracle.

L'équivalent de TO_NUMBER est en mysql cast. Peut être est-ce accepté
en HF?
Essaie peut être aussi les instructions du wdlangage.

Sinon, tu peux peut être en profiter pour transformer ta zone en vrai
numérique
QQ liens utiles :
http://www.asp-php.net/tutorial/asp-php/equivalences_sql.php
et aussi http://sqlzoo.net/
>
> Auriez-vous une idée pour que je puisse modifier ma requete et avoir un
> résultat correct ?
>
> Merci
>
> FabSteg

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)



Avatar
mat
FabSteg wrote:
N'aurais-je vraiment pas d'autres solutions que la modification du modele,
car l'équivalent Mysql n'est pas accepté non plus.
Je vais finir par prendre du retard sur mon planning avec toutes ces
modifications à faire.
C'est incroyable comme Oracle à réussi à se créer son propre langage SQL.



Bonjour,
Si j'ai bien compris, la destination est un fichier HF. Dans ce cas, on
peut essayer d'envoyer les données non converties. J'ai trouvé que pour
la plupart des cas, HF convertie automatiquement.

Mat