Abfrage mit count() und where

Hallo zusammen,
ich habe die Aufgabenstellung, dass das Ergebnis einer select count anweisung als Bedingung genutzt werden soll.
Z.B. ein Tabinhalt
4711 , 1
4711 , 2
4711 , 3
4712 , 3

Als Ergebnis der Abfrage soll
4712 , 3 herauskommen.
Wenn select count(*) > 1 ist, dann darf der Datensatz nicht in die Ergebnisliste kommen. Also 4711 , 1 bis 3 müssen ignoriert werden.

Mein Versuch: select tab.spalte1, count(tab.spalte1) as AnzahlSpalte1 from tab group by tab.spalte1 having count(tab.spalte=1
bringt zwar rechnerisch das richtige Ergebnis, aber sobald ich eine zweite Spalte als Bedingung mit einbringe funktioniert die Abfrage nicht mehr. Die Abfrage soll um eine Bedingung erweitert werden, z.B. where spalte2=3.
danke für die Mithilfe,

Hallo Rainer,

Mein Versuch: select tab.spalte1, count(tab.spalte1) as
AnzahlSpalte1 from tab group by tab.spalte1 having
count(tab.spalte=1
bringt zwar rechnerisch das richtige Ergebnis, aber sobald ich
eine zweite Spalte als Bedingung mit einbringe funktioniert
die Abfrage nicht mehr. Die Abfrage soll um eine Bedingung
erweitert werden, z.B. where spalte2=3.

drehe die Bedingung einfach um. Das ist für effektive SQL-Programmierung sowieso besser, da schneller.

Also erste die Bedingung für Spalte2 auswerten (1. Abfrage) und dann darauf die Count - Abfrage ausführen (2. Abfrage).

Grüße aus Essen
Wolfgang

Hallo Wolfgang,
vielen Dank für Deine Mithilfe. Ich habe die Abfrage gedreht, das Ergebnis bleibt aber gleich.
SELECT tab1.spalte2, tab1.spalte1, Count(tab1.spalte1) AS AnzahlSpalte1
FROM tab1
where tab1.spalte2=„3“
GROUP BY tab1.spalte2, tab1.spalte1
HAVING (Count(tab1.spalte1))=1;
Ergebnis:
alle Rows mit spalte=3 werden ausgegeben.
Erwartet wird aber alle rows mit spalte=3 und anzahl.spalte1=1.

Hilfe-was mache ich falsch?
Grüße aus München
Rainer

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Rainer,

Also erste die Bedingung für Spalte2 auswerten (1. Abfrage)
und dann darauf die Count - Abfrage ausführen (2. Abfrage).

Hilfe-was mache ich falsch?

siehe oben, du brauchst ZWEI Abfragen:

  • erstelle eine erste Abfrage für die Bedingung Spalte3
  • erstelle eine zusätzliche zweite Abfrage für die Count Bedingung, die die erste Bedingung als Datenquelle hat!

Grüße aus Essen
Wolfgang

Guten Morgen Wolfgang,
riesig…hat funktioniert, ich war leider etwas auf dem Holzweg und wollte alles in einer Abfrage abhandeln.
schönen Dank und viele Grüße aus dem überschwemmten Süden

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]