Page 1 of 1

Querys in Abab mit Selektions-Variablen

PostPosted: Mon Jan 31, 2005 11:37 am
by Marlies1022
Hallo zusammen
Ich habe folgendes Problem:
Folgende Abfrage in meinem Abap funktioniert:
select distinct
a~tdname
into corresponding fields of table gt_allemat
from stxh as a
where a~tdid = gitxtid "welche TextID
and a~tdspras = 'DE' "Sprache
and a~tdfdate >= '01.01.2004' "Von datum
and a~tdfdate <= '31.12.2004' "Bis Datum
and a~mandt = '010'. "Mandant
** =====================================

Folgende Abfrage gibt nichts zurück:
select distinct
a~tdname
into corresponding fields of table gt_allemat
from stxh as a
where a~tdid = gitxtid "welche TextID
and a~tdspras = 'DE' "Sprache
and a~tdfuser = gierfass
and a~tdfdate >= givondat "Von datum
and a~tdfdate <= gibisdat "Bis Datum
and a~mandt = '010'. "Mandant

** ==================================================
Variablendefinitionen für givondat und gibisdat:
Variante 1:
parameters: givondat type D. "von Datum
parameters: gibisdat type D. "bis Datum

Datum-Variante 2:
parameters: giVonDat like stxh-tdfdate. "von Datum
parameters: giBisDat like stxh-tdfdate. "bis Datum

Wieso finde ich mit diesen Variablen keine Werte?
** ============================================
Variablendefinitionen für gierfass:
parameters: gierfass like stxh-tdfuser default 'SMA'.
Verwendung der Benutzer-Variable gierfass:
'S*' -> es wird nichts selektiert
'SMA' -> es wird etwas gefunden

Wieso lässt sich hier mit S* nichts finden?
** ============================================

Danke für Eure Hilfe
Dani

PostPosted: Mon Jan 31, 2005 12:01 pm
by Logan3964
Hallo,

könnte daran liegen:

das '_'-Zeichen steht für genau ein beliebiges Zeichen,
das '%'-Zeichen steht für eine beliebige Folge von Zeichen, einschließlich der leeren Zeichenfolge.

Dann müßte es bei dir: 'S%' lauten.

mfg
Richard

PostPosted: Mon Jan 31, 2005 1:20 pm
by Marlies1022
Hallo Richard
Danke für den Hinweis. Ich habe die Selektion mit 'S%' nun hingekriegt.

Bei der Datumseingrenzung komme ich aber nicht weiter.

Grüsse
Dani

PostPosted: Mon Jan 31, 2005 2:13 pm
by Silke1341
RiffRaff hat geschrieben:Hallo,

könnte daran liegen:

das '_'-Zeichen steht für genau ein beliebiges Zeichen,
das '%'-Zeichen steht für eine beliebige Folge von Zeichen, einschließlich der leeren Zeichenfolge.

Dann müßte es bei dir: 'S%' lauten.

mfg
Richard

hier muss man einen Unterschied bzgl. der Wildcards machen:
SQL:
% - eine beliebige Zeichenkette
_ - ein beliebiges Zeichen

ABAP (Range):
* - eine beliebige Zeichenkette
+ - ein beliebiges Zeichen

bei der Selektion mit SELECT ist noch zu bemerken, dass bei Verwendung von Wildcards mit
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. <dbfeld> LIKE <prüffeld>
GeSHi ©
selektiert werden muss.

Alternativ kann man auch folgendes benutzen:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. SELECT-OPTIONS:
  2.   pr_werks FOR marc-werks
  3.                   NO-EXTENSION "nur einzeilig
  4.                   NO INTERVALS."keine Intervale
  5. ...
  6.   lt_werks TYPE TABLE OF werks_d.
  7.  
  8. SELECT werks
  9.        FROM t001w
  10.        INTO TABLE lt_werks
  11.        WHERE werks IN pr_werks. "<<<==== IN-Operator
  12.  
GeSHi ©

Der Vorteil ist, dass bei der Eingabe die 'normalen' Wildcards gelten, die bei der Übergabe an SQL durch die R/3-SQL-Schnittstelle korrekt umgesetzt werden.