Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi COUNT und LEFT JOIN PROBLEM (https://www.delphipraxis.net/136529-count-und-left-join-problem.html)

HolgerCW 2. Jul 2009 09:45

Datenbank: ORACLE • Version: 10 • Zugriff über: BDE

COUNT und LEFT JOIN PROBLEM
 
Hallo zusammen,

ich habe folgende SQL-Abfrage gebaut:

Delphi-Quellcode:
SELECT T1.SPALTE1, COUNT(T1.SPALTE1) AS COUNT FROM TABELLE1 T1
LEFT JOIN TABELLE2 T2
ON T1.SPALTE1 = T2.SPALTE1
WHERE T1.SPALTE1 = 1 AND T2.SPALTE2 IS NULL
GROUP BY T1.SPALTE1
Der Inhalte der Tabellen ist folgender:

T1.SPALTE1

1
2

T2.SPALTE1, T2.SPALTE2

1, 1
1, 1
2, NULL

Wenn ich nun T2.SPALTE2 nach NULL abfrage und T1.SPALTE1 auf 1, wird mir nichts mehr angezeigt.
Ich würde aber gerne folgendes angezeigt bekommen:

T1.SPALTE1, COUNT
1, 0

Wie kann ich das hinbekommen, das er mir auch einen Count von 0 ausgibt ?

Gruss

Holger

mkinzler 2. Jul 2009 09:53

Re: COUNT und LEFT JOIN PROBLEM
 
Versuche mal eine right oder outer join

HolgerCW 2. Jul 2009 09:59

Re: COUNT und LEFT JOIN PROBLEM
 
Hat leider nicht funktioniert ... Hat wer vielleicht noch eine Idee ?

DeddyH 2. Jul 2009 10:55

Re: COUNT und LEFT JOIN PROBLEM
 
Was kommt hierbei heraus?
SQL-Code:
SELECT
  T1.SPALTE1, COUNT(1) AS Anzahl
FROM
  TABELLE1 T1
LEFT JOIN
  TABELLE2 T2 ON T2.SPALTE1 = T1.SPALTE1
WHERE
  T1.SPALTE1 = 1 AND T2.SPALTE2 IS NULL
GROUP BY
  T1.SPALTE1

HolgerCW 2. Jul 2009 11:08

Re: COUNT und LEFT JOIN PROBLEM
 
Hi,

dabei wird auch keine Zeile ausgegeben.

Warum ?

Gruss

Holger

DeddyH 2. Jul 2009 12:05

Re: COUNT und LEFT JOIN PROBLEM
 
Das wüsste ich auch gern. Und wenn wir Tabelle1 einmal außen vor lassen?
SQL-Code:
SELECT
  COUNT(*) AS Anzahl
FROM
  TABELLE2 T2
WHERE
  T2.SPALTE1 = 1 AND T2.SPALTE2 IS NULL

HolgerCW 2. Jul 2009 12:38

Re: COUNT und LEFT JOIN PROBLEM
 
Dann ist der Count = 0.

Dabei können wir auch den LEFT JOIN beibehalten.

Müssen nur das Group by und den select der T1.SPALTE1 raus nehmen.

Aber der Count muss doch auch 0 ergeben, wenn man noch zusätzlich eine Spalte angibt ?

DeddyH 2. Jul 2009 13:02

Re: COUNT und LEFT JOIN PROBLEM
 
Würde ich eigentlich auch vermuten. Nach meinem Dafürhalten dürfte nur dann kein Ergebnis kommen, wenn es schon die Spalte1 mit dem Wert 1 in der ersten Tabelle gar nicht gibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16: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