Datenbank Abfrage

Bluedaishi

Bekanntes Mitglied
Guten Morgen.....
Ich habe eine Tabelle mit den Spalten SQN_Start und SQN_Stop

ich möchte alle Werte zwischen SQN_Start und SQN_Stop ausgeben aber das klappt irgendwie nicht .

Select * from testdb Where SQN_Start=1020 and SQN_Stop=90027

ich bekomme keine Werte ausgegeben
hat jemand eine Idee was ich dort falsch mache

vielen Dank für eure Hilfe
 

LimDul

Top Contributor
Damit gibst du genau die Zeilen aus, wo die Spalte SQN_Start exakt den Wert 1020 und die Spalte SQN_Stop exakt den Wert 90027 hat. Da schein es keine zu geben. Was heißt für dich denn "zwischen". Welche Werte sollen zwischen 1020 und 90027 liegen? Also welcher Spalte.
 

Bluedaishi

Bekanntes Mitglied
Dazwischen können 10 ,15 , 50 oder mehr Datensätze liegen die ich gerne ausgeben will . Das heist ich brauche die ID die hinterlegt ist und noch eine weiter Spalte stake_ges
 

Bluedaishi

Bekanntes Mitglied
Die Tabelle sieht folgender Maßen aus

ID , SQN_Start , SQN_Stop , Stake_ges , Dateiname , Datei
12 , 300. , 750. , 62,80. , d.csv , blob
12 , 751. , 980. , 120,80. , d1.csv. , blob
12, 981 , 1230. , 320,70. , d2. Csv. , blob

Mit select * from testDb where Id=12 and SQN_Start=300 and SQN_Stop=1230

dachte ich ich bekomme dadurch alle Datensätze
 
K

kneitzel

Gast
Dann musst Du genau definieren, welche Datensätze du haben willst. So wie ich Dich jetzt verstanden habe, willst Du haben:
SQN_START >= 300 AND SQL_Stop <= 1230

Es ist also extrem wichtig, dass Du selbst sauber formulierst, was Du willst. Wie schon gesagt wurde: Es existiert kein Datensatz bei dem SQL_Start gleich 300 und SQL_Stop gleich 1230 ist.
 

Bluedaishi

Bekanntes Mitglied
So wie auf dem Foto zusehen möchte ich die Daten zwischen den beiden SQN_Start und SQN_Stop haben
 

Anhänge

  • 77EEE81C-63A7-4849-B899-B760BF19095E.jpeg
    77EEE81C-63A7-4849-B899-B760BF19095E.jpeg
    104,4 KB · Aufrufe: 35

Meniskusschaden

Top Contributor
So wie auf dem Foto zusehen möchte ich die Daten zwischen den beiden SQN_Start und SQN_Stop haben
Es fehlt immer noch die Definition, was du mit "zwischen" meinst. Du willst offenbar abfragen, welche Zeilen innerhalb eines gegebenen Intervalls liegen. Die Zeilen selbst repräsentieren aber keine Punkte, sondern ebenfalls Intervalle. Es sind also Überlappungen möglich. Liegt beispielsweise das Intervall [500, 1500] nach deiner Definition "zwischen" dem Intervall [300, 1230]? Das musst du mal sauber beschreiben und ggfs. die möglichen Fälle unterscheiden.
 

mrBrown

Super-Moderator
Mitarbeiter
Ehrlich gesagt verwirrt mich das Bild nur mehr, als das es hilft.


Die Zeilen sind weder nach SQN_START noch nach SQN_STOP sortiert, sondern nach irgendwas anderem?

Und dann sollen alle Zeilen ab einem bestimmten SQN_START bis zu einem bestimmten SQN_STOP gesucht werden?
 

LimDul

Top Contributor
Das wichtigste für das Verständnis ist - die beiden Spalten haben für die Datenbank *nichts* mit einander zu tun. Die eine könnte auch Alter heißen und die andere Gehalt. Das die eine Start und die andere Stop heißt und die anscheinend ein Intervall angeben, ist für die Datenbank vollkommen egal - wenn man das als Intervall interpretieren möchte, muss man das im SQL Query auch enstprechend formulieren.
 

Bluedaishi

Bekanntes Mitglied
Wenn ich den Start Sqn auswähle und den End Sqn möchte ich alle Spalten innerhalb der sqn Werte ausgegeben haben
 

Anhänge

  • 58A2F4DA-A10E-4E2E-990A-EB665826267F.jpeg
    58A2F4DA-A10E-4E2E-990A-EB665826267F.jpeg
    86,8 KB · Aufrufe: 16

Bluedaishi

Bekanntes Mitglied
Guten Morgen an der Konsole hat es funktioniert das ich alle Einträge bekomme . In der Anwendung mit JavaFX fehlt mir immer der letzte
 
K

kneitzel

Gast
Also wenn eine Abfrage auf einer Datenbank auf der Konsole (Also ich nehme mal an, in einem Textbasierten Datenbankclient a.la. mysql, psql, ...) dann sollte genau die gleiche Abfrage auch in der Java Applikation das gleiche Ergebnis bringen. Du könntest also einfach einmal die Details zeigen:
a) Was führst Du auf der Kommandozeile aus?
b) Was ist der Code in Deinem Java Programm?

Und ich bin auch ernsthaft am Überlegen, was Du genau willst / erwartest. Beim angesprochenen Bildschirmfoto hast Du ja eine Start und eine End Zeile markiert. Die Zeile unter der Endzeile scheint die Bedingung aber auch zu erfüllen.

Wenn diese Start / End Werte ein Intervall beschreiben und Du alle Elemente haben willst, die in dem Intervall liegen, dann hast Du die entsprechende Abfrage.

Sind dies aber geordnete Datensätze und du willst alle Datensätze haben von dem Element an wo Start den bestimmten Wert und bis hin zu dem Datensatz, bei dem der End Wert einen bestimmten Wert hat, dann muss es anders gehen. Auf dem Bild in #6 scheint es noch eine fortlaufende Nummerierung zu geben. Diese wäre dann evtl. nutzbar. Der Name ist uns jetzt nicht bekannt, aber da wäre dann evtl. etwas denkbar wie:
Code:
SELECT 
    * 
FROM 
    sometable
WHERE
    LfdNr >= (SELECT LfdNr FROM sometable WHERE SQN_START = ?) AND
    LfdNr <= (SELECT LfdNr FROM sometable WHERE SQN_STOP = ?)
Wobei das evtl. nicht ganz ausreichend ist. Evtl. muss die ID noch stimmen und so.

Falls das in dem Bild täuschte und es keine laufende Nummer war (sondern evtl. nur eine Nummerierung der Ergebnisse bei der verwendeten GUI), dann kann man sich so eine Nummerierung evtl. selbst schaffen über eine Common Table Expression (CTE).
 

krgewb

Top Contributor
Also ist der Screenshot falsch?

Angenommen, das Query ist
Code:
SELECT * FROM testDb WHERE Id = 408400236 AND SQN_START >= 13955 AND SQN_Stop <= 10531

Auf dem Screenshot von Beitrag #6 sind 21 Zeilen zu sehen.
Keine davon würde gefunden werden. Es gibt zwar zwei Zeilen, bei denen SQN_STOP kleiner oder gleich 10531 ist,
aber in den Zeilen ist der SQL_START-Wert nicht hoch genug.
 

abc66

Top Contributor
Ok betrachten wir mal das folgende Beispiel:
SQL:
create table demo1(id integer PRIMARY KEY AUTOINCREMENT, f integer, t integer);

INSERT INTO demo1 (f,t) VALUES (0,1);
INSERT INTO demo1 (f,t) VALUES (3,5);
INSERT INTO demo1 (f,t) VALUES (10,13);
INSERT INTO demo1 (f,t) VALUES (21,22);
INSERT INTO demo1 (f,t) VALUES (4,6);
INSERT INTO demo1 (f,t) VALUES (9,14);

Jetzt hast du eine Tabelle demo1 mit 6 Zeilen, von denen sich zwei "Zeilen" (10,13 und 9,14) auf jeden Fall überschneiden.

Alle Zeiten, die sich nicht überschneiden, kannst du dann so
SQL:
select * from demo1 where id not in (SELECT d1.id from demo1 as d1 inner join demo1 as d2 WHERE (d1.f < d2.f and d1.t > d2.t) or (d1.f > d2.f and d1.t < d2.t));
oder so
SQL:
select * from demo1 as d1 where not EXISTS (SELECT id from demo1 as d2 where (d1.f < d2.f and d1.t > d2.t) or (d1.f > d2.f and d1.t < d2.t));
ermitteln. Ich denke das ist genau das was du suchst....
 

Meniskusschaden

Top Contributor
Alle Zeiten, die sich nicht überschneiden, kannst du dann so ... oder so ... ermitteln.
Damit würden aber auch einige Zeilen ausgegeben, die sich eben doch überschneiden. Beispielsweise wenn mehrere Zeilen dasselbe Intervall haben.
Ich denke das ist genau das was du suchst....
Wenn das tatsächlich gewünschte Ergebnis nichts mit den Screenshots und auch nichts mit der verbalen Anforderungsbeschreibung zu tun hat, könnte es das wirklich sein. Wäre also durchaus möglich.;)
 

abc66

Top Contributor
Damit würden aber auch einige Zeilen ausgegeben, die sich eben doch überschneiden. Beispielsweise wenn mehrere Zeilen dasselbe Intervall haben.

Wenn das tatsächlich gewünschte Ergebnis nichts mit den Screenshots und auch nichts mit der verbalen Anforderungsbeschreibung zu tun hat, könnte es das wirklich sein. Wäre also durchaus möglich.;)
Naja, eine Überschneidung liegt auf jeden Fall dann vor, wenn die Startzeit 1 vor der Startzeit 2 liegt und die Endzeit 1 nach der Endzeit 2 liegt. Andernfalls muss er die Bedingung eben umformulieren. Ich denke das schafft er.
 

Meniskusschaden

Top Contributor
Naja, eine Überschneidung liegt auf jeden Fall dann vor, wenn die Startzeit 1 vor der Startzeit 2 liegt und die Endzeit 1 nach der Endzeit 2 liegt.
Das ist eben nur eine kleine Teilmenge der möglichen Fälle für Überschneidungen. Und du hattest ja nicht geschrieben, deine Abfrage würde Überschneidungen finden (da könnte man die Ergebnisse noch als korrekt aber unvollständig ansehen), sondern überschneidungsfreie Zeilen (da ist das Ergebnis einfach falsch). Selbst wenn man Teilüberlappungen außen vor lässt, erkennt sie nicht mal Überschneidungen, die zum selben Zeitpunkt beginnen, aber zu unterschiedlichen Zeitpunkten enden.
 

abc66

Top Contributor
da ist das Ergebnis einfach falsch
Ist doch Humbug, ich kenne die genaue Anforderungsdefinition nicht und bin auch nicht verpflichtet diese ("imaginäre") einzuhalten. Mit nur etwas Transferleistung lässt sich die Menge der möglichen Fälle beliebig anpassen.

Sagen wir so, das Gebäude habe ich gebaut, die gewünschten Fenster muss er eben noch selber einsetzen...

Außerdem wusste ich gar nicht genau, ob er nach den Überschneidungen oder den Nicht-Überschneidungen sucht...
 

Meniskusschaden

Top Contributor
da ist das Ergebnis einfach falsch
Ist doch Humbug, ich kenne die genaue Anforderungsdefinition nicht und bin auch nicht verpflichtet diese ("imaginäre") einzuhalten.
Ich habe ja auch nicht behauptet, es sei bezüglich der ursprünglichen Anforderungsdefinition falsch, sondern lediglich bezüglich deiner eigenen Leistungsbeschreibung:
Alle Zeiten, die sich nicht überschneiden, kannst du dann so ...
Vielleicht war ja auch nicht deine Abfrage, sondern nur deine Beschreibung fehlerhaft.

Sagen wir so, das Gebäude habe ich gebaut, die gewünschten Fenster muss er eben noch selber einsetzen...
In dem Fall wäre eine etwas defensiver programmierte Abfrage vorteilhafter gewesen.;)
 

abc66

Top Contributor
Also eingentlich ist mir das relativ egal, weil ich über eine Sql-Abfrage niemals an so eine Fragestellung herangehen würde... Da code ich lieber etwas festes.

Ok, in Prüfungen wird man natürlich genau zu dem Scheiß gezwungen... aber sonst?
 

LimDul

Top Contributor
Also eingentlich ist mir das relativ egal, weil ich über eine Sql-Abfrage niemals an so eine Fragestellung herangehen würde... Da code ich lieber etwas festes.

Ok, in Prüfungen wird man natürlich genau zu dem Scheiß gezwungen... aber sonst?
Sonst Lagert man sowas bei großen Datenmengen an die Datenbank aus, weil es aus Performance (und Speicher) Gründen nicht sinnvoll ist, sowas im Code zu machen.
 

LimDul

Top Contributor
Nun ganz simpel: Wenn wir von mehreren 100.000ten Objekten in der DB reden und JPA dazwischen ist viel sinnvoller die Datenbank die Filterung machen zu lassen als alle zu laden und dann in Java zu filtern. Der Code in Java ist performant, trotzdem muss ich nicht 100.000 Objekte erzeugen, wenn ich am Ende nur 10 brauche.
 

Bluedaishi

Bekanntes Mitglied
SELECT ID, SQN_START, SQN_STOP, STAKE_GES FROM FISKAL_DATEN WHERE ID='408400250' AND (SQN_START>'6943' OR SQN_START='6943')AND (SQN_STOP='9992' OR SQN_STOP<'9992' ) ORDER BY SQN_START ASC

so habe ich es bis jetzt probiert aber es haut nicht hin mit sqn_stop
mir fehlt dann immer der letzte Eintrag vom sqn_stop = 9992
 
K

kneitzel

Gast
SELECT ID, SQN_START, SQN_STOP, STAKE_GES FROM FISKAL_DATEN WHERE ID='408400250' AND (SQN_START>'6943' OR SQN_START='6943')AND (SQN_STOP='9992' OR SQN_STOP<'9992' ) ORDER BY SQN_START ASC

so habe ich es bis jetzt probiert aber es haut nicht hin mit sqn_stop
mir fehlt dann immer der letzte Eintrag vom sqn_stop = 9992
Also kannst Du einmal die Daten vernünftig posten - so dass diese lesbar sind. Was ist SQN_START bei dem Datensatz, der fehlen soll?

Und welche Datenbank nutzt Du? Da sollte doch eigentlich ein <= unterstützt werden, oder sollte es eine Datenbank geben, die das nicht kann?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Datenbank Abfrage Datenbankprogrammierung 7
H MySQL Benutzer Login System mit Datenbank Informationen (Abfrage zu User ist auf DB gesichert) Datenbankprogrammierung 42
M MySQL Anbindung und Abfrage an die Datenbank Datenbankprogrammierung 2
P Datenbank- Abfrage mit null'en Datenbankprogrammierung 2
C Datenbank-Abfrage, if im Select Datenbankprogrammierung 9
H MySQL Datenbank Abfrage Datenbankprogrammierung 10
A Struct für Datenbank abfrage? Datenbankprogrammierung 12
W Where-ähnliche abfrage in objektorientierter Datenbank Datenbankprogrammierung 5
B Datenbank Abfrage: Es fehlt immer ein Eintrag! Datenbankprogrammierung 7
F Abfrage eines DB Feldes aus einer mySQL Datenbank Datenbankprogrammierung 2
T Abfrage einer relationalen Datenbank anhand des Datum. Datenbankprogrammierung 3
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
MongoDB-Datenbank in Androidstudio einbinden Datenbankprogrammierung 1
thor_norsk Datenbank: Apache Derby Datenbankprogrammierung 6
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
M Datenbank mit REST API Datenbankprogrammierung 66
M Entfernte Datenbank Datenbankprogrammierung 11
T Datenbank: Tabelle erstellen bei Web-Applikation Datenbankprogrammierung 4
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
M MySQL Datenbank in Array Datenbankprogrammierung 2
S Den letzten Eintrag aus Datenbank ziehen (Oracle SQL Dev.) Datenbankprogrammierung 14
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
P Datenbank Tool - besser als oracle SQL Developer gesucht mit effizinte Verbindungsverwaltung Datenbankprogrammierung 2
X JPA (EclipseLink) und Oracle Datenbank Datenbankprogrammierung 2
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
L SQL Datenbank Datenbankprogrammierung 7
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
L SQL Datenbank Tabelle erstellen Datenbankprogrammierung 6
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
anton1 Online Datenbank Datenbankprogrammierung 7
krgewb H2-Datenbank öffnen Datenbankprogrammierung 8
J Datenbank abfragen Datenbankprogrammierung 6
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
O SQL Abfragen mit Mini Datenbank Datenbankprogrammierung 12
Z Datenbank Choicebox wird nicht befüllt Datenbankprogrammierung 15
S Suche In SQL Datenbank mit array Datenbankprogrammierung 6
P Enum in der Datenbank Datenbankprogrammierung 1
Z SQL- Datenbank 1.PK zu 2.FK Datenbankprogrammierung 3
E netbeans - jsp Daten in Datenbank hinzufügen Datenbankprogrammierung 2
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
MiMa wo Datenbank verbinden/trennen? Datenbankprogrammierung 1
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
DeltaPilot12 Datenbank connect Funktion Datenbankprogrammierung 7
J Oracle Datenbank-Tabelle per Combobox (oder ähnliches) auswählen Datenbankprogrammierung 3
N SQL Datenbank Spalte in Java Array Datenbankprogrammierung 2
J JAR-Datei und Datenbank Datenbankprogrammierung 8
Kirby.exe Zeile aus der Datenbank holen wenn ein match besteht Datenbankprogrammierung 7
Kirby.exe Es werden keine Einträge in der Datenbank gemacht Datenbankprogrammierung 23
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
J Welche Kriterien haben Einfluss auf die Geschwindigkeit einer Datenbank ? Datenbankprogrammierung 4
B Frage zu Datenbank Design bei Events (ZenDesk) Datenbankprogrammierung 1
M SQLite Datenbank mit SQLite Datenbankprogrammierung 7
C String in Datenbank einfügen Datenbankprogrammierung 11
C Keinen Zugrift auf Datenbank Datenbankprogrammierung 2
C Datenbank zugreifen Datenbankprogrammierung 10
L Auf Strato Datenbank zugreifen Datenbankprogrammierung 7
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
G Datenbank Statement Datenbankprogrammierung 22
M Datenbank editierbach machen in JTable Datenbankprogrammierung 13
S Datenbank MySQL und Java Datenbankprogrammierung 8
M H2 Verbindung zur Datenbank komplett schließen Datenbankprogrammierung 11
J Aufbau meiner Datenbank/Tabelle - Verbessern? So lassen? Datenbankprogrammierung 39
J Nur CRUD über Datenbank Klasse, oder auch mehr ? Datenbankprogrammierung 2
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
L Appabsturz mit Datenbank Datenbankprogrammierung 4
J Zahlungseingänge von mehreren Kunden wie am besten abbilden in der Datenbank ? Datenbankprogrammierung 8
L Datenbank sichern Datenbankprogrammierung 8
S Daten von SQLite Datenbank nutzen Datenbankprogrammierung 5
J Datenbank VPS Server Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
NIckbrick MySQL Befehle aus Datenbank auslesen Datenbankprogrammierung 21
S Datenbank/Java true/false Datenbankprogrammierung 8
J JUNIT und CRUD-Datenbank Datenbankprogrammierung 4
F Datenbank/Datenabgleich/Wiederholungsabfrage Datenbankprogrammierung 12
@SupressWarnings() Eure bevorzugte Datenbank-Library Datenbankprogrammierung 9
C datenbank verbindung config Datenbankprogrammierung 23
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
M Datenbank vor unerlaubtem Zugriff durch Benutzer schützen Datenbankprogrammierung 3
U MySQL Aus Servlet in Datenbank schreiben Datenbankprogrammierung 4
H Datenbank Export mit Java Datenbankprogrammierung 3
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
S SQL-Statement Datenbank Zeitbereich durchsuchen Datenbankprogrammierung 2
L Messenger App - Wie am besten auf Datenbank zugreifen? Datenbankprogrammierung 4
H MySQL Datenbank auf Xampp nimmt keine Mediumblob an. Datenbankprogrammierung 0
L Oracle Datenbank über Java aufrufen Datenbankprogrammierung 29
DaCrazyJavaExpert Derby/JavaDB Unfindbarer Fehler im Datenbank-Code Datenbankprogrammierung 87
DaCrazyJavaExpert Derby/JavaDB Wert einer Variable in der Datenbank direkt auf 1 setzten. Datenbankprogrammierung 71
W MySQL Ausgabe von Datenbank in Java-App Datenbankprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben