SQL - Abfrage mit Sortierung - GroupBy problem

crsakawolf

Erfahrenes Mitglied
Hallo Gemeinde,

ich habe ein Problem,
ich möchte gerne mit einem MSSql Server eine abfrage machen.

Die Abfrage soll eine (bzw. 10) nr ausgeben, die Anhand der ersten 5 und der letzten 6 Buchstaben Gruppiert werden soll. Die nr sollen anhand des Datum's genutzt werden.

Hier die bisherige überlegung.
Code:
SELECT TOP 10 LEFT(webshop_sortim_nr,5) as links, RIGHT(webshop_sortim_nr,6) as rechts, webshop_sortim_lastdatetimestamp FROM webshop_sortim GROUP BY LEFT(webshop_sortim_nr,5), RIGHT(webshop_sortim_nr,6), webshop_sortim_lastdatetimestamp ORDER BY webshop_sortim_lastdatetimestamp DESC

Problem hierbei, wenn zb nr 0001E 201001 und nr 0001P 201001 ein anderes Datum haben, werden Sie doppelt angezeigt.
Sie sollen aber nur 1 mal erscheinen, da ja die erste 4 und die letzten 6 übereinstimmen.

Danke euch vielmals
 
zeurst das ganze mal formatieren, damit man es auch versteht
SQL:
SELECT 
	TOP 10 
	LEFT(webshop_sortim_nr,5) as links, 
	RIGHT(webshop_sortim_nr,6) as rechts, 
	webshop_sortim_lastdatetimestamp 
FROM 
	webshop_sortim 
GROUP BY 
	LEFT(webshop_sortim_nr,5), 
	RIGHT(webshop_sortim_nr,6), 
	webshop_sortim_lastdatetimestamp 
ORDER BY 
	webshop_sortim_lastdatetimestamp DESC

So, jetzt erkennt man mehr.

Wenn veim Gruppieren 2 zusammenfallen würden, welches Datum soll genommen werden? Das höhere, das tiefere, der Durchschnitt?

Bsp. für das Höhere
SQL:
SELECT 
	TOP 10 
	LEFT(webshop_sortim_nr,5) as links, 
	RIGHT(webshop_sortim_nr,6) as rechts, 
	MAX(webshop_sortim_lastdatetimestamp) as mydate
FROM 
	webshop_sortim 
GROUP BY 
	LEFT(webshop_sortim_nr,5), 
	RIGHT(webshop_sortim_nr,6)
ORDER BY 
	MAX(webshop_sortim_lastdatetimestamp) DESC
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück