invisan
Goto Top

Doppelte Einträge einer Tabelle zählen und mit anderer vergleichen

ich habe folgende Situaltion:

Aus einer Datenbanktabelle möchte ich alle doppelten Einträge zählen lassen, sodass eine neue Spalte "Anzahl" entsteht
dann soll diese Ansicht mit einer anderen Tabelle verglichen werden in der aber nur die Bisherigen Spalten vorkommen (also ohne "Anzahl")
sodass Einträge, die in beiden Tabellen vorkommen nicht angezeigt werden.

Das zählen hat mit:
select Name, Version, count(Name) as Anzahl from Programmliste group by Name, Version
gut funktioniert und ich erhalte eine Ansicht mit den Spalten "Name, Version, Anzahl"

wenn ich dann mit
except Name, Version from Programmliste2
diese Ansicht mit der zweiten Liste vergleichen möchte bekomme ich ein Fehler, dass in der Programmliste2 die Spalte Anzahl fehlt.
Am Ende möchte ich die Ansicht mit Name,Version,Anzahl haben aber ohne die Einträge die schon in der Programmliste2 enthalten sind.

Benutzt wird ein MS SQL Server 2008 R2

Schonmal vielen Dank für Hilfe und Ideen

Content-ID: 175700

Url: https://administrator.de/contentid/175700

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

nxclass
nxclass 03.11.2011 um 11:16:25 Uhr
Goto Top
aber ohne die Einträge die schon in der Programmliste2 enthalten sind.
SELECT
  p1.*
FROM programmliste1 p1
  LEFT JOIN programmliste2 p2 ON (p1.Name = p2.Name AND p1.Version = p2.Version)
WHERE
  p2.Name IS NULL
  p2.Version IS NULL
... wichtig ist LEFT JOIN und das IS NULL um nur die Nicht enthaltenen Einträge zu erhalten.
Invisan
Invisan 03.11.2011 um 12:32:14 Uhr
Goto Top
Super herzlichen Dank für die schnelle Hilfe face-smile