Questione : Prime e file ultime di rinvio, raggruppate dalle colonne.

Ciao,

Scenario: Ogni utente può fornire gli aggiornamenti multipli in una tabella, (forse una volta al mese, forse cento volte), attraverso il corso dell'anno. Voglio restituire il GUID ed il COSTO per il primo e le ultime entrate raggruppate entro ogni utente, mese ed anno ed allora etichettare in modo da conosciamo quale è quale (per l'entrata in una filtrare in/gruppo di rapporto vicino): class= " lineNumbers " >
1 del >

i.e.: 2: 3: 4: 5: 6: 7: class= codeBody " prettyprint " del id= " codeSnippet822160 " del >
TIPO DI COSTO GUID ENTRYDATE DI ANNO DI MESE DELL'UTENTE 
------------------------------------------------------------------------------------------------
UTENTE E MAGGIO 2010 22000 D490…      2010-05-21 11:59: 55.000 IN PRIMO LUOGO 
UTENTE E MAGGIO 2010 650 D223…      2010-05-31 23:00: 00.000 ULTIMO
UTENTE E GIUGNO 2010 23500 DCA0…     2010-06-15 13:30: 18.000 IN PRIMO LUOGO 
UTENTE E GIUGNO 2010 1000 6C90…      2010-06-24 11:50: 55.000 Il class= >


Obviously di LAST

Here è una tabella di esempio che contiene i dati che sono uso per il di cui sopra. problema del

The ho trovato che usando MIN/MAX su EntryDate è che il GUID causa il raggruppamento da venire a mancare. Metterei in un esempio delle domande che sto provando ma essere onesti, tutti sembrano essere inutili, in modo da sarebbero interessati per sapere qualcun'altro verrebbe al problema. class= " lineNumbers " >
1 del >

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

Risposta : Prime e file ultime di rinvio, raggruppate dalle colonne.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
SELEZIONARE T.USERNAME, T.MONTH, T.YEAR, Yt.COST, Yt.GUID, Yt.ENTRYDATE, “IN PRIMO LUOGO„ [tipo]
DA (
	SELEZIONARE  IL USERNAME, 
			MESE (ENTRYDATE) [MESE], 
			ANNO (ENTRYDATE) [ANNO], 
			(ENTRYDATE) MinDate MINIMO
	Da YourTable
	GRUPPO DAL USERNAME, MESE (ENTRYDATE), ANNO (ENTRYDATE) 
) T INTERNO UNISCE YourTable Yt SU T.USERNAME = Yt.USERNAME E T.MinDate = Yt.ENTRYDATE

UNIONE

SELEZIONARE T.USERNAME, T.MONTH, T.YEAR, Yt.COST, Yt.GUID, Yt.ENTRYDATE, “ULTIMO„ [tipo]
DA (
	SELEZIONARE  IL USERNAME, 
			MESE (ENTRYDATE) [MESE], 
			ANNO (ENTRYDATE) [ANNO], 
			Max (ENTRYDATE) MaxDate
	Da YourTable
	GRUPPO DAL USERNAME, MESE (ENTRYDATE), ANNO (ENTRYDATE) 
) T INTERNO UNISCE YourTable Yt SU T.USERNAME = Yt.USERNAME E T.MaxDate = Yt.ENTRYDATE
Altre soluzioni  
 
programming4us programming4us