![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: UniDAC
Problem beim erstellen einen Selectes
Hallo Delphianer,
ich habe ein Problem und ich bekomme es einfach nicht hin einen Select zu erstellen. Ich habe eine Tabelle an der ich leider nichts ändern kann. Hier mal ein Teil der Tabelle welche relevant für den Select ist.
Delphi-Quellcode:
Es kann sein das im Feld Fach etwas drin steht oder nicht. Die Anzahl der Zeilen kann unterschiedlich sein.
Schrank Schublade Fach
1 1 Schraube_50 1 1 Nagel_10 1 1 1 2 Schraube_50 1 2 1 2 1 2 1 3 Schraube_50 1 3 Magel_10 1 3 Nagel 20 1 4 Schraube_50 1 4 Schraube_50 1 4 1 4 Ich möchte als Ergebis dieses hier haben:
Delphi-Quellcode:
Ich möchte als Ergebnis den Schrank und die Schublade haben bei denen nur Schraube_50 im Feld Fach vorkommt. Es kann auch zwei mal vorkommen. Sobald mindestes in einen Zeile ein andere Wert wie z.B. Nagel steht soll diese Zeile nicht im Ergebnis erscheinen.
Schrank Schublade Fach
1 2 Schraube_50 1 4 Schraube_50 Könnt Ihr mir hier bitte helfen ich habe es mit Left Outer Join und Group versucht nur leider bekomme ich es einfach nicht hin. Ich vermute einmal ich habe hier den falschen Ansatz und es geht doch ganz anders. Das falsche Ergebnis dauert auch recht lange (Überprüft mit IBExpert) bei mir da die Datenbank etliche Datensätze enthält. 25 Mio aber das Ergebnis solte kleiner 500 sein. Dauert ca. 3 Minuten aber da kommt bestimmt noch vom falschen Ansatz hier oder ich muss einen Index anders setzten Danke schon einmal Tanja. |
AW: Problem beim erstellen einen Selectes
Mal auf die Schnelle:
Code:
select Schrank
, Schublade , Fach from Tabelle where Fach = 'Schraube_50' and not exists (select 1 from Tabelle where Fach <> 'Schraube_50') |
AW: Problem beim erstellen einen Selectes
Moin...8-)
In der Hoffnung die Frage richtig verstanden zu haben...
Code:
select distinct Schrank, Schublade from Tabelle where Fach = 'Schraube_50'
Delphi-Quellcode:
:warn: Index auf Feld 'Fach'
Qry.SQL.Text := 'select distinct Schrank, Schublade from Tabelle where Fach = :FAC';
Qry.ParamByName('FAC').AsString := 'Schraube_50'; Qry.Open; :warn: kein "like" verwenden weil sonst der Index nicht greift |
AW: Problem beim erstellen einen Selectes
@haentschman:
Bei deiner Abfrage wäre unter anderem auch 1 1 dabei. Aber dort liegen auch Nägel. Ich hatte am Anfang den selben Denkfehler. :wink: Ich denke die Abfrage soll die Datensätze treffen, in denen der Lagerort ausschließlich Schraube_50 enthält. |
AW: Problem beim erstellen einen Selectes
Das ist richtig...
Zitat:
Zitat:
Zitat:
...soviel zum Thema: Zitat:
|
AW: Problem beim erstellen einen Selectes
Nein, es sind 3. In Schublade 3 kommt auch Nagel_20 vor, deshalb soll sie nicht auftauchen.
|
AW: Problem beim erstellen einen Selectes
Zitat:
Delphi-Quellcode:
ist aber doch erlaubt, das exist select ignoriert aber nur
Fach =''
Delphi-Quellcode:
. Oder übersehe ich da was?
Fach IS NULL
|
AW: Problem beim erstellen einen Selectes
Zitat:
|
AW: Problem beim erstellen einen Selectes
Zitat:
|
AW: Problem beim erstellen einen Selectes
Danke an alle die mir geholfen haben . Ich habe es hinbekommen. Es war nicht noch die Lücke mit den leeren Feldern sondern Select hinter exisits wird immer 1 da immer ein Datensatz gefunden wird. Aber kein Problem mit dem schubs in die richtige Richtunf habe ich es hinbekommen. Einen schönen Sonntag noch für alle.
Tanja |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz