Re: SQL-Abfrage ueber 2 Tabellen
Eine DB-Aenderung von diesem Ausmass halte ich persoenlich zu diesem Zeitpunkt noch fuer vertretbar. Ich werde mal sehen, was sich da machen laesst!
Allerdings wuerde ich eine reine SQL-Server-Loesung (ohne DB-Aenderung) vorziehen. (z. bsp. ueber eine StoredProcedure) Gruesse Delphi-Coder |
Re: SQL-Abfrage ueber 2 Tabellen
Beim MSSQL kannst du das so machen ...
SQL-Code:
Damit kannst du dir eine SP basteln.
// Leeren String deklarieren
declare @SQL varchar(1000) // Die Variable "@Field" (für gewünschten Feldnamen) deklarieren declare @Field varchar(50) // Die Variable "@Field" mit Feldnamen füllen SELECT @Field='Vorname' set @SQL = 'Select '+@Field+' from Adressen' Exec(@SQL) MSSQL führt dann SELECT Vorname FROM Adressen aus :zwinker: Eine Alternative zur SP wäre eine Funktion (mit RETURNS TABLE), die du dann via SUB-SELECTS einbindest Schöne Grüße, Jens :hi: |
Re: SQL-Abfrage ueber 2 Tabellen
@jensw_2000 Vielen Dank! Ich kann es leider erst heute abend probieren. Aber nur fuer den Fall, dass ich damit ueberhaupt nicht klarkomme: Wie funktioniert denn das mit der Funktion und den Sub-Selects?
Viele Gruesse Delphi-Coder |
Re: SQL-Abfrage ueber 2 Tabellen
Kann es auch grade nicht testen :mrgreen:
theoretisch aber so ...
SQL-Code:
Schöne Grüße,
-- eine Funktion erstellen, die dir eine virtuelle Tabelle zurückliefert
CREATE FUNCTION DynamicSQL (@Fieldname VARCHAR(20),@Tablename VARCHAR(40)) RETURNS TABLE AS -- SQL STRING declare @SQL varchar(1000) -- Funktionsparameret "verbauen" set @SQL = 'Select '+@Fieldname+' from '+@Tablename RETURN Exec(@SQL) Aufruf ... SELECT * FROM DynamicSQL(@Fieldname=(Select IrgendwasPlausibles FROM TABELLE A), @Tablename='Adressen') Jens :hi: |
Re: SQL-Abfrage ueber 2 Tabellen
Erstmal Danke! So auf die Schnelle steige ich da nicht hinter! Aber ich werde mich heute abend ausgiebig damit beschaetigen!
|
Re: SQL-Abfrage ueber 2 Tabellen
Falls das
SQL-Code:
nicht functionieren sollte, must du eine
RETURN EXEC(@SQL)
temporäre Tabelle erstellen, füllen, ausgeben und wieder Droppen ....
SQL-Code:
EXEC (@SQL)
INTO #TempTable RETURN #TEMpTable |
Re: SQL-Abfrage ueber 2 Tabellen
Nun - was von dem DB-Design zu halten ist, weißt Du ja nun - hier eine Lösung ohne Stored Procedure:
SQL-Code:
Gruß
SELECT Kat.Klasse
, Kat.Gruppe , CASE Kat.Gruppe WHEN 'normale Fahrstunde' THEN P.fahrstunde WHEN 'Autobahnfahrt' THEN P.autobahn WHEN 'Fahrt bei Dunkelheit' THEN P.dunkelheit WHEN 'Landstrassenfahrt' THEN P.landstrasse END AS Preis FROM Tabelle1 Kat INNER JOIN Tabelle2 P ON P.Klasse = Kat.Klasse |
Re: SQL-Abfrage ueber 2 Tabellen
@Leuselator
Wie immmer eine einfache und brilliante Lösung ... :mrgreen: Warum komme ich nie auf sowas ? :wall: Schöne Grüße, Jens :hi: |
Re: SQL-Abfrage ueber 2 Tabellen
Vielen Dank fuer die Loesung! Es funktioniert!
Ich werde aber die DB-Aenderung versuchen durchzusetzen! Gruss aus Dubai, Delphi-Coder |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz