Fråga : Gå tillbaka först och ror sist, grupperat av kolonner.

Hi

Scenario: Varje användare kan skriva in multipeluppdateringar in i en bordlägga, (kanske när en månad, kanske hundra tider), alltigenom jaga av året. Jag önskar att gå GUIDEN tillbaka och ATT KOSTA för de första och sist tillträdena som grupperas vid varje användare, månad och år och därefter att märka, så vi vet vilket är vilket (för tillträde in i rapportatt filtrera/grupp by): class= " lineNumbers " >
1 för >
ANVÄNDAREMÅNADÅRET KOSTAR TYP FÖR GUID ENTRYDATE 
------------------------------------------------------------------------------------------------
MAJ för ANVÄNDARE E 2010 22000 D490…,      2010-05-21 11:59: 55.000 FÖRST 
MAJ för ANVÄNDARE E 2010 650 D223…,      2010-05-31 23:00: 00.000 JUMBO
ANVÄNDARE E JUNI 2010 23500 DCA0…,     2010-06-15 13:30: 18.000 FÖRST 
ANVÄNDARE E JUNI 2010 1000 6C90…,      2010-06-24 11:50: 55.000 LAST<-/pre>

i.e.: 2: 3: 4: 5: 6: 7: class= " prettyprint " för id= " codeSnippet822160 " för >


Obviously för användare E jag önskar ”12:02 2010-05-21: 07:13 32.000” och ”2010-06-16: 06.000” daterar borttaget.

Here är ett exempel bordlägger att innehålla förmiddagbruket för data I för det ovannämnt. problemet för

The som jag har funnit using MIN/MAX på EntryDate, är att GUIDEN orsakar gruppera till kuggningen. Jag skulle satt i ett exempel av queriesna som jag har varit pröva, men att vara ärliga, de alla verkar för att vara onyttiga, så skulle, intresseras för att veta hur någon skulle annars kommet på problemet. för class=" codeSnippet " för

1 för >

USERNAME KOSTAR GUID ENTRYDATE 
13:05 för ANVÄNDARE A 1000 40879A8B-D964-DF11-8C38-001635810CA9 2010-05-21: 36.000
13:06 FÖR ANVÄNDARE A 2500 EA40279C-D964-DF11-8C38-001635810CA9 2010-05-21: 04.000
23:00 FÖR ANVÄNDARE B 6000 F62384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
23:00 FÖR ANVÄNDARE C 1975 AE2384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
23:00 för ANVÄNDARE D 12000 542384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
11:59 FÖR ANVÄNDARE E 22000 D490B55E-D064-DF11-8C38-001635810CA9 2010-05-21: 55.000
12:02 för ANVÄNDARE E 300 7EF4F8BB-D064-DF11-8C38-001635810CA9 2010-05-21: 32.000
23:00 FÖR ANVÄNDARE E 650 D22384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
23:00 för ANVÄNDARE F 1270 8A2384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
23:00 för ANVÄNDAREG 800 782384AB-0A90-DF11-8C38-001635810CA9 2010-05-31: 00.000
13:29 för ANVÄNDAREH 6400 6F672602-8278-DF11-8C38-001635810CA9 2010-06-15: 23.000
13:30 FÖR ANVÄNDARE E 23500 DCA02523-8278-DF11-8C38-001635810CA9 2010-06-15: 18.000
07:13 för ANVÄNDARE E 6620 26191E9C-1679-DF11-8C38-001635810CA9 2010-06-16: 06.000
11:50 för ANVÄNDARE E 1000 6C905CBE-867F-DF11-8C38-001635810CA9 2010-06-24: 55.000
13:29 FÖR ANVÄNDAREH 1500 FDD2B4F8-8178-DF11-8C38-001635810CA9 2010-06-15: 07.000
13:28 för ANVÄNDARE D 18750 490E50EE-8178-DF11-8C38-001635810CA9 2010-06-15: 50.000
07:02 FÖR ANVÄNDARE C 6640 CE53C31F-1579-DF11-8C38-001635810CA9 2010-06-16: 28.000
19:08 FÖR ANVÄNDARE C 6840 BE9526D4-7A84-DF11-8C38-001635810CA9 2010-06-30: 13.000
" klar "

Svar : Gå tillbaka först och ror sist, grupperat av kolonner.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
VALD T.USERNAME, T.MONTH, T.YEAR, Yt.COST, Yt.GUID, Yt.ENTRYDATE, ”FÖRST” [typ]
FRÅN (
	VÄLJ  USERNAME, 
			MÅNAD (ENTRYDATE) [MÅNAD], 
			ÅR (ENTRYDATE) [ÅRET], 
			MINIMUM (ENTRYDATE) MinDate
	FRÅN YourTable
	GRUPP VID USERNAME, MÅNAD (ENTRYDATE), ÅR (ENTRYDATE) 
) INRE T SAMMANFOGAR YourTable Yt PÅ T.USERNAME = Yt.USERNAME OCH T.MinDate = Yt.ENTRYDATE

UNION

VALD T.USERNAME, T.MONTH, T.YEAR, Yt.COST, Yt.GUID, Yt.ENTRYDATE, ”SIST” [typ]
FRÅN (
	VÄLJ  USERNAME, 
			MÅNAD (ENTRYDATE) [MÅNAD], 
			ÅR (ENTRYDATE) [ÅRET], 
			Max (ENTRYDATE) MaxDate
	FRÅN YourTable
	GRUPP VID USERNAME, MÅNAD (ENTRYDATE), ÅR (ENTRYDATE) 
) INRE T SAMMANFOGAR YourTable Yt PÅ T.USERNAME = Yt.USERNAME OCH T.MaxDate = Yt.ENTRYDATE
Andra lösningar  
 
programming4us programming4us