Achtung Anfänder SQL / I-Tabellen Problem

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Achtung Anfänder SQL / I-Tabellen Problem

Beitrag von Dabap (ForumUser / 9 / 2 / 0 ) »
Hallo,

ich habe folgendes Problem.
In einem Programm soll ich unter anderem Daten aus einer Tabelle lesen und diese weiterverarbeiten.
Die Daten um die es geht sind Dokumente bzw Dokument bezeichnungen mit ihren Merkmalen etc...
Ich soll den AT-Wert nach einem nach eingabe gewünschten Zeichen aufsuchen und diesen durch ein gewünschtes Zeichen ersetzen.
Es klappt so ziemlich alles ausser die Korrekte befüllung der internen Tabelle.
Das Problem ist, das in der WHERE bedingung meiner SQL Anweisung auch das 'Sternchen' eingegeben werden darf um sich die Eingabe zu erleichtern.
(Es gibt unteranderem Dokumente mit dem Namen 'DRWFK7-0-37A 00000' usw..) und da es von einigen eine menge gibt, will man sich die eingabe erleichtern und einfach 'DRWFK*' eingeben können, sprich sich nicht auf ein spezielles Dokument stürzen sondern es auf mehrere Begrenzen.
Die Sache ist, wie man ja von SQL weiss ,dass durch die Angabe eines Sternechens mehrere Ergebnisse zurückgeliefert werden können.

Mein Problem ist jetzt, ob ich was bei der SQL-Abfrage falsch mache oder ob ich mit so eingaben wie 'DRWAC*' überhaupt arbeiten kann, da ich die Vermutung habe das er GENAU nach 'DRWAC*' sucht und das Sternchen nicht interpretiert.
Könnte es auch sein das ich die Ergebnissmenge einfach mit meinem Programmkonstrukt nicht korrekt verarbeite?
Ich habe keine Ahnung und bin mit meinem Latein am ende, weil ich das Gefühl habe das alles was ich je über Programmieren gelernt habe über den Haufen geschmissen wird...




Hier der Relevante ausschnitt des Programms.

Code: Alles auswählen.


*&---------------------------------------------------------------------*
*& Report  Z_PLM_CHANGE_CLASS_AT_WERT
*&
*&---------------------------------------------------------------------*
*&
*&    Author:             Daniel Obst
*&    Beschreibung:       Programm zur veränderung des AT_Werts
*&    Erstellungsdatum:   23.03.2010
*&    Version:            1.1b
*&
*&---------------------------------------------------------------------*

REPORT  Z_PLM_CHANGE_CLASS_AT_WERT.

TABLES: cabn, ausp.
data: documentkey type ausp-objek.
data: ls_cabn type cabn.
data: Dokument(25) type c.
data: kriterium(2) type c.

data lst_ausp type ausp.

data ls_ausp type ausp.

data i_ausp TYPE STANDARD TABLE OF ausp.   "dient zum anzeigen wie die Daten vorher aussahen
data i_auspx TYPE STANDARD TABLE OF ausp.
data i_auspy TYPE STANDARD TABLE OF ausp.  "dient zur späteren verarbeitung der echten tabellen
data ab type ausp.

selection-screen: begin of block 0 with frame title text-001.
  selection-screen skip.
  PARAMETERS type(3) type c OBLIGATORY.
  SELECT-OPTIONS doc for Dokument.
  PARAMETERS vers(2) type c.
  PARAMETERS partdoc(3) type c.
  selection-screen skip.
selection-screen: end of block 0.

SELECTION-SCREEN: BEGIN OF BLOCK 1 WITH FRAME TITLE text-002.

  PARAMETERS class type  cabn-atnam OBLIGATORY.

SELECTION-SCREEN: END OF block 1.

SELECTION-SCREEN: BEGIN OF BLOCK 2 WITH FRAME TITLE text-003.

  Parameters von type c.
  PARAMETERS zu type c.

SELECTION-SCREEN: END OF block 2.

PARAMETERS p_check as checkbox default 'X' user-command comm.

*&----------------------------------------------------------------------*
*& Beginn des Hauptprogrammes
*&----------------------------------------------------------------------*

START-OF-SELECTION.

CONCATENATE von zu into kriterium.

PERFORM Einlesen.
PERFORM change.

IF p_check NE 'X'.

  perform update.

ENDIF.
perform ausgabe.
end-of-SELECTION.

*&---------------------------------------------------------------------*
*&      Form  Einlesen
*&---------------------------------------------------------------------*
*       Befüllen der internen Tabellen.
*----------------------------------------------------------------------*

FORM Einlesen.

  LOOP AT doc.
    concatenate type doc-low vers partdoc into ls_ausp-objek RESPECTING BLANKS.
    append ls_ausp to i_auspx.
  ENDLOOP.

  select SINGLE * from cabn into ls_cabn
    where atnam = class.

LOOP AT i_auspx into ab .

 select * From ausp INTO CORRESPONDING FIELDS OF ab

   where objek like ab-objek
   and atinn = ls_cabn-atinn.
   append ab to i_ausp.
   append ab to i_auspy.
   modify i_auspx from ab.
   clear ab.
 ENDSELECT.
ENDLOOP.

ENDFORM.
Vielen Dank im vorraus und vezeiht meine Anfängerfehler, denn ich bin neu in Abap und kann fast gar nichts.... :? :(

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Achtung Anfänder SQL / I-Tabellen Problem

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Dabap hat geschrieben:...
Mein Problem ist jetzt, ob ich was bei der SQL-Abfrage falsch mache oder ob ich mit so eingaben wie 'DRWAC*' überhaupt arbeiten kann, da ich die Vermutung habe das er GENAU nach 'DRWAC*' sucht und das Sternchen nicht interpretiert.
...
ja, Deine Vermutung stimmt. In Open-SQL sind die Wildcard-Zeichen '%' (entspricht '*') und '_' (entspricht '+'). Dazu muss aber die Bedingung statt '=' bzw. 'EQ' 'LIKE' benutzen (WHERE field LIKE 'DRWAC%').
Dabap hat geschrieben: Vielen Dank im vorraus und vezeiht meine Anfängerfehler, denn ich bin neu in Abap und kann fast gar nichts.... :? :(
Hm, Neulinge, die fast nichts können, haben meistens genau deshalb noch wenig Erfahrung. Also, Kopf hoch, es kann nur besser werden... ;-)

Wenn ein alter Hase fast nichts kann, sollte er sich Gedanken machen, ob er das Richtige macht...

Folgende Benutzer bedankten sich beim Autor ereglam für den Beitrag:
Dabap

Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Achtung Anfänder SQL / I-Tabellen Problem

Beitrag von Dabap (ForumUser / 9 / 2 / 0 ) »
Vielen vielen Dank!!!!
Tatsächlich war es nur das...
Habe vorher, wenn es um Datenbanken ging, nur mit MySQL Datenbanken zu tun gehabt und musste nicht viel über Open SQL wissen.

vielen Dank nochmal, das Programm funzt jetzt!

mfg Daniel

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2560
Views
Problem mit insert und DB-Tabellen
von tom1986 » 12.02.2009 10:27 • Verfasst in ABAP® für Anfänger
9
Antw.
5422
Views
Problem mit Join von internen & DB-Tabellen
von debianfan » 10.11.2017 09:10 • Verfasst in ABAP® für Anfänger
2
Antw.
2095
Views
Problem, mit Wertübergabe bei zwei internen Tabellen
von scott111 » 06.04.2006 21:44 • Verfasst in Dialogprogrammierung
4
Antw.
1833
Views
problem beim join über 2 Tabellen
von liberado » 14.05.2008 10:24 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Rechnung: Belegspez. Adresse
vor 5 Stunden von ewx 2 / 281
Daten an Tabelle binden
vor 12 Stunden von Lukas Sanders 4 / 2148
Regex in where
vor 2 Tagen von tar 8 / 924
Programm anlegen mit Vorlage
vor 4 Tagen von DeathAndPain 2 / 733

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Rechnung: Belegspez. Adresse
vor 5 Stunden von ewx 2 / 281
Daten an Tabelle binden
vor 12 Stunden von Lukas Sanders 4 / 2148
Regex in where
vor 2 Tagen von tar 8 / 924
Programm anlegen mit Vorlage
vor 4 Tagen von DeathAndPain 2 / 733

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Tagen von snooga87 1 / 627
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3815
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 10236