Zum Inhalt springen

SQL-Abfrage filtern


Crazy_Bug

Empfohlene Beiträge

Hallo,

ich will ein paar Daten aus einer Datenbank haben. In der Datenbank sind aber einige Datensätze doppelt drin und unterscheiden sich jeweils nur in ein oder zwei spalten. Mit distinct werden die Spalten anscheinend ja nur gefiltert, wenn alle spalten eines datensatzes gleich sind. Wie krieg ich es aber hin, dass die datensätze auch gefiltert werden, wenn nicht alle spaten gleich sind, sondern nur eine bestimmte?

danke im vorraus

greetz

chris

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich will ein paar Daten aus einer Datenbank haben.

oracle, mysql, mssql, db2, postgres, informix, progress, ...?

In der Datenbank sind aber einige Datensätze doppelt drin und unterscheiden sich jeweils nur in ein oder zwei spalten. Mit distinct werden die Spalten anscheinend ja nur gefiltert, wenn alle spalten eines datensatzes gleich sind.

dem ist - laut SQL-norm genau so, ja.

Wie krieg ich es aber hin, dass die datensätze auch gefiltert werden, wenn nicht alle spaten gleich sind, sondern nur eine bestimmte?

indem du auf die gewünschten, zusammenzufassenden spalten das GROUP BY aggregat anwendest.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

um ehrlich zu sein, bin ich mir nicht ganz sicher, was es für eine db is, aber ich meine es is informix. mit group by hab ichs schon probiert, aber da bekomm ich immer die meldung, dass eine bestimmte zeile in der group-by-klausel stehen muss. wenn ich sie dazuschreibe, dann will er die nächste und dann immer so weiter, bis ich alle spalten in der group-by-klausel habe...

Link zu diesem Kommentar
Auf anderen Seiten teilen

gute idee, hätt ich auch drauf kommen können :D

"select distinct * from tabelle1 v inner join tabelle2 r ON v.fabriknr = r.fabriknr where v.behoerde like 'behoerde' and r.sysname like 'ST______' order by sysname;"

Wenn ich das so mache dann gibter mir halt nur auch das doppelte aus. Dann hab ichs mit group by versucht:

"select distinct * from tabelle1 v inner join tabelle2 r ON v.fabriknr = r.fabriknr where v.behoerde like 'behoerde' and r.sysname like 'ST______' group by sysname;"

Dann gibt er mir folgenden Fehler zurück:

"The column (fabriknr) must be in the GROUP BY list."

Es ist überigens eine Informix-Datenbank.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok...meine abfrage ist jetzt:

"

"select distinct r.sysname,v.sachbearbeiter,r.lieferdatum,r.fabriknr from tabelle1 v inner join tabelle2 r ON v.fabriknr = r.fabriknr where v.behoerde like 'behoerde' and r.sysname like 'ST______' group by r.sysname,v.sachbearbeiter,r.lieferdatum,r.fabriknr;"

nen fehler gibter jetzt nichtmehr zurück, aber funktionieren tut es auch net^^

hab ich was falsch gemacht?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...