Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > ERP > SAP
SAP Forum d'entraide sur SAP et sur la programmation avec le langage ABAP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/10/2006, 10h20   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 2
Points : 1
Points : 1
Par défaut [ABAP] [Débutant] Substring dans une clause where

Bonjour,
je débute en ABAP et j'ai des difficultés à transcrire du Native SQL en OpenSQL. Exemple :
Je souhaite réaliser la condition simple suivante dans la clause where d'un select :
NativeSQL
Code :
1
2
SELECT ... INTO ...
WHERE substr(CHAMP1,0,4) in ('val1','val2','val3','val4','val5').
Je ne trouve pas la syntaxe adhoc,
OpenSQL
Code :
1
2
SELECT ... INTO ...
WHERE CHAMP1+0(4) in ('val1','val2','val3','val4','val5').
ne fonctionne pas...

Merci d'avance pour votre aide.
Lankoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2006, 12h03   #2
Rédacteur/Modérateur
 
Avatar de cladsam
 
Morgan Bourgeois
Inscription : août 2003
Messages : 1 730
Détails du profil
Informations personnelles :
Nom : Morgan Bourgeois
Âge : 32
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 1 730
Points : 1 862
Points : 1 862
Tel quel je ne pense pas que ca existe j'essaierais bien un truc du genre

Code :
1
2
3
4
5
6
select ...
int  ...
from...
where champ1  like 'var1%'
      or champ2  like 'var2%'
     etc...
dans l'idée, je pars du principe que tu as mis non pas var1% mais la concatenationde la valeur de var1 et %.
Si tu as N varaiables et que tu ne veux pas te manger N champmachin = var OR... tu remplis un range en mettant des CP dans le champ option
Code :
1
2
3
4
select ...
int  ...
from...
where champ1  in tonRange.
Autre chose : bienvenue sur developpez
__________________
----------------------------------------------------
Consultant technico-fonctionnel SAP logistique -
Mon site sur developpez
---------------------------------------------------
Anakin Skywalker turn to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.
cladsam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 09h48   #3
Membre à l'essai
 
Inscription : août 2006
Messages : 40
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 40
Points : 24
Points : 24
Bonjour Lankoo,

C'est l'offset que l'ABAP n'aime pas dans ta synthaxe.
"CHAMP1+0(4)" ne peut pas être utilisé dans une clause WHERE.

Cladsam a raison, le mieux serait d'utiliser un range et de le charger avec les valeurs que tu cherches, par l'option CP (contain patern).

Bonne journée
Frooty
Frooty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 15h50   #4
Invité de passage
 
Inscription : octobre 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 2
Points : 1
Points : 1
Merci pour vos réponses,
la syntaxe ci-dessous correspond à mon besoin comme je n'ai pas trop de valeurs. j'étudierai la seconde également.

Code :
1
2
where champ1  like 'var1%'
      or champ2  like 'var2%'
Lankoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 15h55   #5
Rédacteur/Modérateur
 
Avatar de cladsam
 
Morgan Bourgeois
Inscription : août 2003
Messages : 1 730
Détails du profil
Informations personnelles :
Nom : Morgan Bourgeois
Âge : 32
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 1 730
Points : 1 862
Points : 1 862
cool alors

L'utilisation des range est une chose tres pratique je te recommande de t'y mettre ca permet de faire des conditions tres sympa et de faire une requete avec pas mal de comparaisons différentes

N'oublie pas de mettre résolu si tu n'as plus de problème avec cette requete
__________________
----------------------------------------------------
Consultant technico-fonctionnel SAP logistique -
Mon site sur developpez
---------------------------------------------------
Anakin Skywalker turn to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.
cladsam est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h34.


 
 
 
 
Partenaires

Hébergement Web