select count mit where funtioniert nicht

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

select count mit where funtioniert nicht

Beitrag von donossi (ForumUser / 66 / 2 / 1 ) »
Hallo,

ich habe gerade folgenden Code zusammen gebastelt:

Code: Alles auswählen.

SELECT COUNT( * ) INTO count FROM tab.

Code: Alles auswählen.

SELECT COUNT( * ) INTO count FROM tab WHERE spaltenname NE 'X'. 

Code: Alles auswählen.

   SELECT * INTO struk_tab_name FROM tab.

   if tab-spaltenname NE 'X'.

    count = count + 1.
      ENDIF.
    ENDSELECT.
Der erste Schnipsel liefert einen Wert in count zurück. z.b. 20
Der zweite Schnipsel liefert 0 zurück, obwohl kein eintrag unter spaltenname ein X hat.
Der dritte Schnipsel liefert wieder die korrekte 20 zurück.

Hat jemand von euch eine Idee, warum der 2te Select eine 0 zurück gibt?

Gruss
DonOssi

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


Re: select count mit where funtioniert nicht

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hi,
versuch mal das:

Code: Alles auswählen.

    SELECT COUNT( * ) INTO count FROM tab WHERE spaltenname = ' '. 
Gruß
coco

Re: select count mit where funtioniert nicht

Beitrag von donossi (ForumUser / 66 / 2 / 1 ) »
Wenn ich das richtig sehe, hast du nur

Code: Alles auswählen.

= ' '.
geändert !?!

Dann bleibt das Ergebniss 0, obwohl alle Einträge leer sind.
Wenn ich das Blank weglasse, und nur nach

Code: Alles auswählen.

spaltenname = ''.
suche kommt auch 0 raus

Re: select count mit where funtioniert nicht

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
hmmm komisch.
Hab dein Bsp nachgebaut. Und hier wird das Richtige ausgegeben.

Code: Alles auswählen.

tables: spfli.
data: count type i.

SELECT COUNT(*)
       FROM spfli
       INTO count
       WHERE FLTYPE = ' '.
  write: count.
Geh mal in den Debugger und schau dir mal an, was für ein Feldinhalt drin ist.

Gruß
coco

Re: select count mit where funtioniert nicht

Beitrag von ewx (Top Expert / 4871 / 314 / 644 ) »
Probier mal ... WHERE spaltenname IS NULL...!
Wenn jetzt die Einträge gefunden werden, dann liegt es daran, dass du (oder wer auch immer) in der Tabellendefinition das Flag "initialwerte" nicht gesetzt hat.
http://scn.sap.com/thread/100083

Re: select count mit where funtioniert nicht

Beitrag von donossi (ForumUser / 66 / 2 / 1 ) »
Muss jetzt erstmal los. Schaue morgen nochmal nach, woran es gelegen haben kann. vielen Dank erstmal....

Re: select count mit where funtioniert nicht

Beitrag von a-dead-trousers (Top Expert / 4419 / 224 / 1189 ) »
ewx hat geschrieben:Probier mal ... WHERE spaltenname IS NULL...!
Wenn jetzt die Einträge gefunden werden, dann liegt es daran, dass du (oder wer auch immer) in der Tabellendefinition das Flag "initialwerte" nicht gesetzt hat.
http://scn.sap.com/thread/100083
Das passiert aber auch wenn man die Spalte nachträglich zur Tabelle hinzufügt. Dann wird bei allen "alten" Einträgen die neue Spalte auf NULL gesetzt.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: select count mit where funtioniert nicht

Beitrag von ewx (Top Expert / 4871 / 314 / 644 ) »
a-dead-trousers hat geschrieben:Das passiert aber auch wenn man die Spalte nachträglich zur Tabelle hinzufügt. Dann wird bei allen "alten" Einträgen die neue Spalte auf NULL gesetzt.
Wenn ich das richtig verstanden habe, passiert es sogar NUR dann (sofern Initialflag nicht gesetzt wurde...). Bin mir aber nicht sicher.

Re: select count mit where funtioniert nicht

Beitrag von donossi (ForumUser / 66 / 2 / 1 ) »
Hallo,
ewx hat geschrieben:Probier mal ... WHERE spaltenname IS NULL...!
Wenn jetzt die Einträge gefunden werden, dann liegt es daran, dass du (oder wer auch immer) in der Tabellendefinition das Flag "initialwerte" nicht gesetzt hat.
Das war das Problem. Wie auch a-dead-trousers geschrieben hat, wurde das Feld nachträglich hinzugefügt und war somit initial.

Was ich mich da allerdings frage, warum Abap bei Abfrage auf NE die Werte nicht zurücklierfert. Weil der Wert ist ja, auch wenn er unbestimmt ist, definitiv "nicht X"....

vielen Dank für eure Hilfe....

Gruss
DonOssi

Re: select count mit where funtioniert nicht

Beitrag von ewx (Top Expert / 4871 / 314 / 644 ) »
donossi hat geschrieben:Was ich mich da allerdings frage, warum Abap bei Abfrage auf NE die Werte nicht zurücklierfert. Weil der Wert ist ja, auch wenn er unbestimmt ist, definitiv "nicht X"....
Wenn er "unbestimmt" ist, kannst du nicht wissen, dass er "nicht X" ist! ;)

Re: select count mit where funtioniert nicht

Beitrag von a-dead-trousers (Top Expert / 4419 / 224 / 1189 ) »
ewx hat geschrieben:
donossi hat geschrieben:Was ich mich da allerdings frage, warum Abap bei Abfrage auf NE die Werte nicht zurücklierfert. Weil der Wert ist ja, auch wenn er unbestimmt ist, definitiv "nicht X"....
Wenn er "unbestimmt" ist, kannst du nicht wissen, dass er "nicht X" ist! ;)
Noch einfacher: DBs verwenden NULL als Initailwert und SAP kennt das nicht. SPACE ist also nicht gleich NULL
Lustig wirds, wenn die Tabelle auf dem Appl.Server (SAP) gepuffert ist: Je nachdem ob der Puffer funktioniert werden die Daten ausgegeben oder nicht. :?

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: select count mit where funtioniert nicht

Beitrag von donossi (ForumUser / 66 / 2 / 1 ) »
ahhh.....so wie bei Schrödingers Katze !?!

http://www.youtube.com/watch?v=wTJnRS8SZhI


Da ich gerade beim Select bin, hätte ich auch noch eine andere Frage:

Ich habe versucht die Datenbankeinträge aus diesem Jahr zu zählen.

Code: Alles auswählen.

SELECT datum INTO datum FROM tab.
    IF  datum(4) = sy-datum(4).
      count = count + 1.
    ENDIF.
  ENDSELECT.
kann man in Abap SQL mit Substrings arbeiten? Das ich die if Abfrage mit in das SQL optimiere?

Re: select count mit where funtioniert nicht

Beitrag von a-dead-trousers (Top Expert / 4419 / 224 / 1189 ) »
hi!

Trial and Error sag ich da nur!
Obwohl ich glaub, dass das gehen sollte.
Die DB muss das sicher können wobei ich die genaue SQL-Syntax dazu nicht weiß.
Wenns nicht klappt ein SQL-Handbuch zu Rate ziehen und ein NATIVE SQL Statement absetzten. :evil:

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: select count mit where funtioniert nicht

Beitrag von ewx (Top Expert / 4871 / 314 / 644 ) »
donossi hat geschrieben:ahhh.....so wie bei Schrödingers Katze !?!
ja wohl so ähnlich... *lach*

Code: Alles auswählen.

SELECT datum INTO TABLE tab_datum FROM tab where datum like '2012%'.

Re: select count mit where funtioniert nicht

Beitrag von a-dead-trousers (Top Expert / 4419 / 224 / 1189 ) »
a-dead-trousers hat geschrieben:Die DB muss das sicher können wobei ich die genaue SQL-Syntax dazu nicht weiß.
ewx hat geschrieben:

Code: Alles auswählen.

SELECT datum INTO TABLE tab_datum FROM tab where datum like '2012%'.
Ach ja stimmt. :oops:
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

2
Antw.
4110
Views
SELECT COUNT
von Lamerman » 19.06.2006 10:18 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
2523
Views
select count
von bohne » 26.11.2006 22:18 • Verfasst in ABAP® für Anfänger
3
Antw.
3168
Views
Problem mit Select-Count
von debianfan » 27.06.2017 10:47 • Verfasst in ABAP® für Anfänger
2
Antw.
3510
Views
Select Count über mehrere Spalten
von DonBosca » 17.10.2005 09:30 • Verfasst in ABAP® für Anfänger
5
Antw.
2184
Views
count für mehere Tabelleneinträge
von thomasxy » 11.02.2008 09:28 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Mahnung erstellen
vor 2 Stunden von wreichelt 2 / 18
Absprung VA02 Position
vor 4 Stunden von gs3rr4 gelöst 3 / 33
OPD Druck im SPOOL
vor 6 Stunden von Manfred K. 1 / 19

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

Mahnung erstellen
vor 2 Stunden von wreichelt 2 / 18
Absprung VA02 Position
vor 4 Stunden von gs3rr4 gelöst 3 / 33
OPD Druck im SPOOL
vor 6 Stunden von Manfred K. 1 / 19

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor 6 Stunden von Manfred K. 1 / 19
Export von Spools in XLSX
vor 5 Tagen von abapamateur 1 / 401
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 998