SQL Doppelte Ausgaben filtern

gfeschu

Ensign
Registriert
Aug. 2010
Beiträge
147
Hey Guys.

Ich habe als Beispiel folgende Ausgaben:

Date User Name
03.10.2012 10:40 ue51084 Andreas G.
03.10.2012 12:38 u207393 René G.
03.10.2012 12:40 u207393 René G.
03.10.2012 12:40 u207393 René G.

Wie kann ich jetzt angeben, dass es nur einmal René anzeigt? Nach dem Date hab ich bereits gefiltert. Es soll pro User nur einen Eintrag anzeigen pro Tag.

Irgwie steh ich gerade aufm Schlauch... :watt:

Danke für eure Hilfe!
 
Hi,
versuchs doch mal mit "group by Date, Usernummer, Name" (denke den Namen kannst du weglassen wenn du die Nummer als Schlüssel hast)
 
Zuletzt bearbeitet:
1min Google:

SELECT DISTINCT Name, Date, User FROM....
 
select distinct ... funktioniert leider so einfach nicht, da jedes Datum eine andere Uhrzeit hat und somit einen eindeutigen Wert darstellt.

Wenn, dann so:

SELECT DISTINCT Name, trunc(Date), User FROM....

(Das Datum wird auf den vollen Tag abgeschnitten. Kann sein, dass die Funktion trunc() auf verschiedenen DBMS anders heisst.)
 
distinct bringt in diesem fall nichts, da ja die uhrzeitangaben unterschiedlich sind. du löst das problem mit einem group by, mußt dich aber entscheiden, welche uhrzeit du angegeben haben willst. möglich sind min, max, avg....
 
bei Microsoft einfach das komplette Datum mit Zeit auf ein Datum beschränken:

http://msdn.microsoft.com/en-us/library/ms187928.aspx

Code:
SELECT DISTINCT
  NAME
 ,CONVERT(NVARCHAR(60), Datum, 104) AS Datum
 ,USER
FROM
  ...

bei MySQL die Datumsfunktionen verwenden

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date

Code:
SELECT DISTINCT
  NAME
 ,DATE( Datum) AS Datum
 ,USER
FROM
  ...


alternativ auf ein präferiertes Format:

Code:
SELECT DISTINCT
  NAME
 ,DATE_FORMAT(Datum, '%d.%m.%Y') AS Datum
 ,USER
FROM
  ...
 
Zuletzt bearbeitet:
Zurück
Oben