Frage : Zurückgehende erste und letzte Reihen, gruppiert durch Spalten.

Hallo,

Scenario: Jeder Benutzer kann mehrfache Updates in eine Tabelle, (möglicherweise einmal im Monat, möglicherweise hundertmal), während des Kurses des Jahres eintragen. Ich möchte das GUID und die KOSTEN für die erste zurückbringen und die letzten Eintragungen, die bis zum jedem Benutzer, Monat und Jahr und dann etikettieren gruppiert, also wissen wir, welches ist, welches (für Eintragung in Report/Gruppe zu filtern vorbei):

i.e.
1:
2:
3:
4:
5:
6:
7:
ART DER BENUTZER-MONATS-JAHR-KOSTEN-GUID ENTRYDATE 
------------------------------------------------------------------------------------------------
BENUTZER E MAI 2010 22000 D490…      2010-05-21 11:59: 55.000 ZUERST 
BENUTZER E MAI 2010 650 D223…      2010-05-31 23:00: 00.000 LETZTES
BENUTZER E JUNI 2010 23500 DCA0…     2010-06-15 13:30: 18.000 ZUERST 
BENUTZER E JUNI 2010 1000 6C90…      2010-06-24 11:50: 55.000 LAST


Obviously für Benutzer E-I wünschen das „12:02 2010-05-21: 07:13 32.000“ und „2010-06-16: 06.000“ Daten entfernten.

Here ist eine Beispieltabelle, welche die Daten enthält, die ich Gebrauch für das oben genannte bin.

The Problem, das ich gefunden, dass mit MIN/MAX auf EntryDate ist, dass das GUID die Gruppierung verursacht, zum auszufallen. Ich setzen in ein Beispiel der Fragen, die ich versucht, aber, ehrlich zu sein, alle scheinen sie, unbrauchbar zu sein, also interessiert, um zu können, jemand anderes am Problem kommen.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
USERNAME-KOSTEN GUID ENTRYDATE 
13:05 des BENUTZERS A 1000 40879A8B-D964-DF11-8C38-001635810CA9 2010-05-21: 36.000
13:06 DES BENUTZERS A 2500 EA40279C-D964-DF11-8C38-001635810CA9 2010-05-21: 04.000
23:00 DES BENUTZERS B 6000 F62384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
23:00 DES BENUTZERS C 1975 AE2384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
23:00 des BENUTZERS D 12000 542384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
11:59 DES BENUTZERS E 22000 D490B55E-D064-DF11-8C38-001635810CA9 2010-05-21: 55.000
12:02 des BENUTZERS E 300 7EF4F8BB-D064-DF11-8C38-001635810CA9 2010-05-21: 32.000
23:00 DES BENUTZERS E 650 D22384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
23:00 des BENUTZERS F 1270 8A2384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
23:00 BENUTZER G-800 782384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
13:29 des BENUTZERS H 6400 6F672602-8278-DF11-8C38-001635810CA9 2010-06-15: 23.000
13:30 DES BENUTZERS E 23500 DCA02523-8278-DF11-8C38-001635810CA9 2010-06-15: 18.000
07:13 des BENUTZERS E 6620 26191E9C-1679-DF11-8C38-001635810CA9 2010-06-16: 06.000
11:50 des BENUTZERS E 1000 6C905CBE-867F-DF11-8C38-001635810CA9 2010-06-24: 55.000
13:29 DES BENUTZERS H 1500 FDD2B4F8-8178-DF11-8C38-001635810CA9 2010-06-15: 07.000
13:28 des BENUTZERS D 18750 490E50EE-8178-DF11-8C38-001635810CA9 2010-06-15: 50.000
07:02 DES BENUTZERS C 6640 CE53C31F-1579-DF11-8C38-001635810CA9 2010-06-16: 28.000
19:08 DES BENUTZERS C 6840 BE9526D4-7A84-DF11-8C38-001635810CA9 2010-06-30: 13.000

Antwort : Zurückgehende erste und letzte Reihen, gruppiert durch Spalten.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
T.USERNAME, T.MONTH, T.YEAR, Yt.COST, Yt.GUID, Yt.ENTRYDATE „ZUERST“ VORWÄHLEN, [Art]
VON (
	USERNAME  VORWÄHLEN, 
			MONAT (ENTRYDATE) [MONAT], 
			JAHR (ENTRYDATE) [JAHR], 
			MINIMALES (ENTRYDATE) MinDate
	VON YourTable
	GRUPPE DURCH USERNAME, MONAT (ENTRYDATE), JAHR (ENTRYDATE) 
) VERBINDEN INNERE T YourTable Yt AUF T.USERNAME = Yt.USERNAME UND T.MinDate = Yt.ENTRYDATE

ANSCHLUSS

T.USERNAME, T.MONTH, T.YEAR, Yt.COST, Yt.GUID, Yt.ENTRYDATE VORWÄHLEN, „LETZT“ [Art]
VON (
	USERNAME  VORWÄHLEN, 
			MONAT (ENTRYDATE) [MONAT], 
			JAHR (ENTRYDATE) [JAHR], 
			Max (ENTRYDATE) MaxDate
	VON YourTable
	GRUPPE DURCH USERNAME, MONAT (ENTRYDATE), JAHR (ENTRYDATE) 
) VERBINDEN INNERE T YourTable Yt AUF T.USERNAME = Yt.USERNAME UND T.MaxDate = Yt.ENTRYDATE
Weitere Lösungen  
 
programming4us programming4us