Sql Abfrage Problem !
#1
geschrieben 13. Dezember 2006 - 22:16
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.
Danke !
SoniX
Anzeige
#2
geschrieben 13. Dezember 2006 - 22:55
aber sollte es nich 'periode = 001' heißen? achte mal auf die leerzeichen!
hoffe das hilft!
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
#3
geschrieben 13. Dezember 2006 - 23:00
Das geht mit allen anderen auch nicht, auch nicht mit anderen Perioden der Tabelle.
Scheint an der Perioden zu liegen, verstehe bloß nicht warum!
#4
geschrieben 13. Dezember 2006 - 23:06
Dieser Beitrag wurde von Master.Max bearbeitet: 13. Dezember 2006 - 23:06
#5
geschrieben 13. Dezember 2006 - 23:16
For Emails always use OpenPGP. My KeyID: 0xA1E011A4
#6
geschrieben 13. Dezember 2006 - 23:28
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
#7
geschrieben 13. Dezember 2006 - 23:43
EDIT: Du musst den Wert von PERIODE natürlich unter Anführungszeichen schreiben...
Dieser Beitrag wurde von Graumagier bearbeitet: 13. Dezember 2006 - 23:45
For Emails always use OpenPGP. My KeyID: 0xA1E011A4
#8
geschrieben 13. Dezember 2006 - 23:43
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"
#9
geschrieben 13. Dezember 2006 - 23:49
" 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
#10
geschrieben 14. Dezember 2006 - 00:09
mir erscheint es so das er die spalte nicht als zahlen sondern text behandelt!
#11
geschrieben 14. Dezember 2006 - 00:37
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.
#12
geschrieben 14. Dezember 2006 - 10:58
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.
#13
geschrieben 14. Dezember 2006 - 11:06
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.
#14
geschrieben 30. Dezember 2006 - 23:13