![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: ibdac
Im SELECT mehrere Tabellen referenzieren?
Ich baue gerade eine Ansicht aus mehreren Tabellen zusammen.
Ich möchte zu jedem untergeordneten Bauteil die übergeordnete Los- und Auftragsnummer anzeigen.
Code:
Jedes a hat die Spalte BATCH_ID.
CREATE VIEW V_SERIAL_OVERVIEW
AS select a.PUMP_SERIAL, a.STEP_COUNT from PUMPS a union select b.BATCH_ID, b.BATCH_SUBID, b.DRAWING_NO from BATCHES b where b.ID = a.BATCH_ID // -->> Fehler, da Zugriff auf falsche Tabelle union select distinct c.INTERNAL_ORDER from INTERNAL_ORDER_NO c where c.ID = b.ORDER_ID // -->> müsste hier auch auftreten Ich hatte versucht, mehrere where-Klauseln einzuklammern, das ging aber auch nicht. Da ich beim suchen auch nicht auf ähnliche Probleme stoße scheint es ein falscher Ansatz zu sein. Grüße, Messie |
AW: Im SELECT mehrere Tabellen referenzieren?
Hast Du evtl. UNIONS mit JOINS verwechselt? Wie sind die Tabellen denn miteinander verknüpft?
|
AW: Im SELECT mehrere Tabellen referenzieren?
Zitat:
Das Union erscheint mir bisher logisch, da ich in einer Zeile die Seriennummern der Pumen mit den jeweiligen Los- und Auftragsinformationen anzeigen möchte. Könnte ich den Zugriff auf eine andere Tabelle mit einem weiteren SELECT in Klammern umsetzen? Grüße, Messie |
AW: Im SELECT mehrere Tabellen referenzieren?
Müsste es dann nicht ungefähr so lauten?
SQL-Code:
Vermutlich sind aber nicht die IDs on Interesse, sondern die Bezeichner, Losnummern, Auftragsnummern etc., Du müsstest also die SELECT-Felder entsprechend anpassen.
SELECT
A.ID, B.ID, C.ID FROM Bauteil A JOIN Los B ON B.ID = A.Los_ID JOIN Auftrag C ON C.ID = B.Auftrag_ID |
AW: Im SELECT mehrere Tabellen referenzieren?
Code:
Ich denke so sollte es gehen, ggf. so ändern:
CREATE VIEW V_SERIAL_OVERVIEW
AS select Pumps.PUMP_SERIAL ,pumps.STEP_COUNT ,Batches.Batches_SubID ,Batches.Drawing_No ,Internal_Order_No.Internal_Order from Pumps ,Batches ,Internal_Order_No where Pumps.Batch_ID=Batches.Batch_ID and Batches.Order_ID=Internal_Order_No.ID
Code:
(ist Oracle Syntax!)
where Pumps.Batch_ID=Batches.Batch_ID(+)
and Batches.Order_ID=Internal_Order_No.ID(+) Gruß K-H |
AW: Im SELECT mehrere Tabellen referenzieren?
Wobei das ja auch nur JOINS sind, allerdings in anderer Syntax ;)
|
AW: Im SELECT mehrere Tabellen referenzieren?
Moin,
hat super geklappt :thumb: Mir war nicht klar, dass ich die Tabellen hinter dem FROM zusammenfassen muss. Liegt vielleicht auch daran, dass die a.x, b.x wie Variablen aussehen, was sie ja nicht sind. Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 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