WinFuture-Forum.de: Sql Abfrage Problem ! - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Sql Abfrage Problem !


#1 Mitglied ist offline   SoniX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 696
  • Beigetreten: 19. August 04
  • Reputation: 0
  • Wohnort:Buxtehude

geschrieben 13. Dezember 2006 - 22:16

Hallo Community !

Kann mir jemand verraten warum die SQL Abfrage, die im Bild zu sehen ist, nicht geht?
Primärschlüssel sind Kartnr, kstnr und periode.

Wie man sieht ist der Datensatz vorhanden.

Datentypen:
Kartnr NUMBER(4)
kstnr NUMBER(4)
periode NUMBER(4)
tag NUMBER(4)
belegnr NUMBER (5)
Betrag NUMBER (6)

Datenbank ist eine Oracle 8i.


Angehängtes Bild: sql.JPG



Danke !
SoniX
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild


System:
E6750 @2x 3.0Ghz, GA-P35 DS3, 3GB MDT , GF8800 GTS 640MB
0

Anzeige



#2 Mitglied ist offline   sn00b 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.242
  • Beigetreten: 07. November 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 13. Dezember 2006 - 22:55

hmm, bin leider nich so sql fest! :P

aber sollte es nich 'periode = 001' heißen? achte mal auf die leerzeichen!

hoffe das hilft! :P

EDIT:
geht es denn nur mit der 001 nich oder auch mit den anderen?

Dieser Beitrag wurde von Master.Max bearbeitet: 13. Dezember 2006 - 22:56

0

#3 Mitglied ist offline   SoniX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 696
  • Beigetreten: 19. August 04
  • Reputation: 0
  • Wohnort:Buxtehude

geschrieben 13. Dezember 2006 - 23:00

Das mit dem leerzeichen hilft nix.

Das geht mit allen anderen auch nicht, auch nicht mit anderen Perioden der Tabelle.

Scheint an der Perioden zu liegen, verstehe bloß nicht warum!
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild


System:
E6750 @2x 3.0Ghz, GA-P35 DS3, 3GB MDT , GF8800 GTS 640MB
0

#4 Mitglied ist offline   sn00b 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.242
  • Beigetreten: 07. November 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 13. Dezember 2006 - 23:06

versuchmal stadt 'periode = 001' -> 'periode like 001'

Dieser Beitrag wurde von Master.Max bearbeitet: 13. Dezember 2006 - 23:06

0

#5 Mitglied ist offline   Graumagier 

  • Gruppe: aktive Mitglieder
  • Beiträge: 8.811
  • Beigetreten: 01. März 04
  • Reputation: 1
  • Geschlecht:Männlich
  • Wohnort:Graz, Österreich

geschrieben 13. Dezember 2006 - 23:16

Master.Max' Lösung müsste funktionieren. Deine Datenbankstruktur solltest du aber noch mal überdenken.
"If you make something idiot proof, someone will invent a better idiot." - Marvin

For Emails always use OpenPGP. My KeyID: 0xA1E011A4
0

#6 Mitglied ist offline   SoniX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 696
  • Beigetreten: 19. August 04
  • Reputation: 0
  • Wohnort:Buxtehude

geschrieben 13. Dezember 2006 - 23:28

Master.Max's Vorschlag funktioniert leider auch nicht.

Wieder sagt er ' no rows selected'.

Hat denn jemand ne Idee, warum das nicht geht? Bei anderen Abfragen funktioniert sowas
doch auch ohne Probleme.


Gruß,
SoniX
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild


System:
E6750 @2x 3.0Ghz, GA-P35 DS3, 3GB MDT , GF8800 GTS 640MB
0

#7 Mitglied ist offline   Graumagier 

  • Gruppe: aktive Mitglieder
  • Beiträge: 8.811
  • Beigetreten: 01. März 04
  • Reputation: 1
  • Geschlecht:Männlich
  • Wohnort:Graz, Österreich

geschrieben 13. Dezember 2006 - 23:43

Poste doch noch mal die gesamte Abfrage.

EDIT: Du musst den Wert von PERIODE natürlich unter Anführungszeichen schreiben...

Dieser Beitrag wurde von Graumagier bearbeitet: 13. Dezember 2006 - 23:45

"If you make something idiot proof, someone will invent a better idiot." - Marvin

For Emails always use OpenPGP. My KeyID: 0xA1E011A4
0

#8 Mitglied ist offline   sn00b 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.242
  • Beigetreten: 07. November 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 13. Dezember 2006 - 23:43

seltsam...
funktioniert es denn wenn du nur 'periode' selektierst, ohne 'Kartnr' und 'kstnr'?

also

select * from isthilf where periode like 001

fals das auch nicht geht versuch mal

select * from isthilf where periode like "001"
0

#9 Mitglied ist offline   SoniX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 696
  • Beigetreten: 19. August 04
  • Reputation: 0
  • Wohnort:Buxtehude

geschrieben 13. Dezember 2006 - 23:49

Also:

" select * from isthilf where kartnr = 4015 and kstnr = 8100 and periode like 001; " oder auch like 1 geht nicht.


" select * from isthilf where periode like '001' " geht.


Das ist schon mal sehr gut. Danke schon mal !


Warum geht aber :

" select * from isthilf where kartnr = 4015 and kstnr = 8100 and periode = 001; " nicht?

Denn ich brauche das für eine Java Anwendung. In dieser wird aufgrund einer Perioden ID
der Teil ab "periode", also hier "periode = 001" zurück gegeben. Darunter fallen dann auch Abfragen
mit "between". Diese geschriebene Methode hatte ich gehofft auch hier zu verwenden.

Dieser Beitrag wurde von SoniX bearbeitet: 13. Dezember 2006 - 23:49

Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild


System:
E6750 @2x 3.0Ghz, GA-P35 DS3, 3GB MDT , GF8800 GTS 640MB
0

#10 Mitglied ist offline   sn00b 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.242
  • Beigetreten: 07. November 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. Dezember 2006 - 00:09

also so wie das für mich aussieht kann das eigentlich nur am datentyp liegen!
mir erscheint es so das er die spalte nicht als zahlen sondern text behandelt!
0

#11 Mitglied ist offline   SoniX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 696
  • Beigetreten: 19. August 04
  • Reputation: 0
  • Wohnort:Buxtehude

geschrieben 14. Dezember 2006 - 00:37

Ja, wirkt aufgrund der Like Abfrage so.

Aber mit "desc isthilf" sagt er mir eindeutig das NUMBER(4)
der Datentyp ist.

Habe die Tabelle auch schon mal neu erstellt und gefüllt, brachte aber auch nichts.
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild


System:
E6750 @2x 3.0Ghz, GA-P35 DS3, 3GB MDT , GF8800 GTS 640MB
0

#12 Mitglied ist offline   SoniX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 696
  • Beigetreten: 19. August 04
  • Reputation: 0
  • Wohnort:Buxtehude

geschrieben 14. Dezember 2006 - 10:58

Habe das Problem gelöst. Wobei ich es nicht ganz verstehe, warum es nicht ging, aber ok.

Also:
Ein Datensatz hatte folgende Werte
4015,8100,0006,0001,10006,10500 > das ging nicht.

Nun hat er folgende, und es geht.
4015,8100,6,1,10006,10500



Er hatte wohl ein Problem mit den führenden nullen.
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild


System:
E6750 @2x 3.0Ghz, GA-P35 DS3, 3GB MDT , GF8800 GTS 640MB
0

#13 Mitglied ist offline   sn00b 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.242
  • Beigetreten: 07. November 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. Dezember 2006 - 11:06

ja, das kann gut sein, weil bei zahlen gibt es normalerweise keine führenden nullen!
deshalb war ich auch etwas verstuzt, das er das bei der eingabe der daten so zugelassen hat!
is lange her das ich sowas gemacht habe, sollte aber glaube so sein das wenn man '001' eingibt automatich '1' drauswird.
0

#14 Mitglied ist offline   svenner90 

  • Gruppe: aktive Mitglieder
  • Beiträge: 146
  • Beigetreten: 30. Dezember 06
  • Reputation: 0

geschrieben 30. Dezember 2006 - 23:13

like ist eh falsch bzw. nicht richtig. Da der Wert von periode kein string sondern ein integer bzw. numerischer wert ist. like ist nur bei wörtern vorgesehen.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0