AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SELECT verschachteln
Thema durchsuchen
Ansicht
Themen-Optionen

SELECT verschachteln

Ein Thema von Stinger · begonnen am 17. Mär 2005 · letzter Beitrag vom 17. Mär 2005
Antwort Antwort
Stinger

Registriert seit: 5. Nov 2003
45 Beiträge
 
Delphi 6 Professional
 
#1

SELECT verschachteln

  Alt 17. Mär 2005, 15:36
Datenbank: MS-SQL Server • Version: 2000 Enterprise Edit • Zugriff über: ka
Wie kann ich folgenden SELECT unter MS-SQL realisieren?

SELECT XY, YX, (SELECT DD FROM T1 WHERE T1.ZT = 'WERTA') AS 'TEST1', (SELECT DD FROM T1 WHERE T1.ZT = 'WERTB') AS 'TEST2' FROM T1

Leider funktioniert das nicht, ich bekomme lediglich eine Fehlermeldung.
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: SELECT verschachteln

  Alt 17. Mär 2005, 15:50
die abfrage ist aber ja auch blanker unsinn - wer schreibt denn sowas?

mach erstmal die ' um TEST1 und TEST2 weg.

wenn das nicht geht, dann vielleicht das:

SELECT XY, YX, t2.DD as test1, t3.dd as test2
from t1, t1 as t2, t1 as t3
where T2.ZT = 'WERTA'
and T3.ZT = 'WERTB'
  Mit Zitat antworten Zitat
Stinger

Registriert seit: 5. Nov 2003
45 Beiträge
 
Delphi 6 Professional
 
#3

Re: SELECT verschachteln

  Alt 17. Mär 2005, 18:07
Danke für die schnelle Antwort. Habe versucht die Abfrage im Querie-Analyzer laufen zu lassen. Ich bekomme aber die Fehlermeldung:

Server: Msg 208, Level 16, State 1, Line 1
Invalid object name 'T1'.

Irgendwas scheint mit dem T1 AS T2 nicht zu funktionieren.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: SELECT verschachteln

  Alt 17. Mär 2005, 18:27
Hast du auch die richtige Datenbank ausgewählt. Standardmäßig zeigt der Query-Analylizer auf die Datenbank Master. Eventuell uses <Datenbankname> vor das Statement setzen oder <Datenbankname>.dbo.<Tabellenname> in deinem SQL-Statement verwenden.

[edit]obige Behauptung mit der Datenbank Master stimmt nur, wenn der Benutzer SA ist.[/edit]
Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Stinger

Registriert seit: 5. Nov 2003
45 Beiträge
 
Delphi 6 Professional
 
#5

Re: SELECT verschachteln

  Alt 17. Mär 2005, 18:37
Die Query hat auf die richtige Datenbank gezeigt (hab [DB-Name].[dbo].[Table] verwendet). Der Benutzer ist SA.

PS: Ich greife bei meiner Query auf zwei Tabellen zu die miteinander durch nen LEFT OUTER JOIN verbunden werden. Den T1 AS T2 - Befehl verwende ich aber nur für eine Tabelle. Ich hoffe mal das bringt kein Problem mit sich. Das sieht dann bei mir so aus:

SELECT ... FROM T1 LEFT OUTER JOIN T2 ON T1.FELD = T2.FELD, T2 as T3, T2 AS T4 usw.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: SELECT verschachteln

  Alt 17. Mär 2005, 22:44
Ich habe jetzt mal eine Abfrage auf eine Adressdatenbank formuliert, die deiner Vorlage entspricht. Das Select-Statement greift letztlich auf zwei Tabellen zu:
ADR_ADRESSE mit den Adressdaten sowie STD_POSITION in der Anreden bzw. Titel als Stammdaten hinterlegt sind (FK = STP_ID).

Code:
SELECT
  a.adr_id,
  (SELECT IsNull(STP_BEZEICHNUNG, '')
   FROM ADRESSEN.dbo.STD_POSITION
   WHERE STP_ID = a.ADR_STP_ID_ANREDE) AS Anrede,
  (SELECT IsNull(STP_BEZEICHNUNG, '')
   FROM ADRESSEN.dbo.STD_POSITION
   WHERE STP_ID = a.ADR_STP_ID_TITEL) AS Titel,
  a.ADR_NAME,
  a.ADR_MATCHCODE
FROM ADRESSEN.dbo.ADR_ADRESSE a
Ich hoffe, das hilft dir weiter.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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