Cuestión : Primeras y pasadas filas de vuelta, agrupadas por las columnas.

Hola,

Scenario: Cada usuario puede incorporar actualizaciones múltiples en una tabla, (quizá una vez al mes, quizá cientos veces), a través del curso del año. Quiero volver el GUID y el COSTE para el primer y las entradas pasadas agrupadas por cada usuario, mes y año y después marcar con etiqueta así que sabemos cuál es cuál (para la entrada en filtrar/grupo del informe cerca): class= " lineNumbers " >
1 del >

i.e.: 2: 3: 4: 5: 6: 7: class= codeBody " prettyprint " del id= " codeSnippet822160 " del >
TIPO DEL COSTE GUID ENTRYDATE DEL AÑO DEL MES DEL USUARIO 
------------------------------------------------------------------------------------------------
USUARIO E MAYO DE 2010 22000 D490…      2010-05-21 11:59: 55.000 PRIMERO 
USUARIO E MAYO DE 2010 650 D223…      2010-05-31 23:00: 00.000 ÚLTIMO
USUARIO E JUNIO DE 2010 23500 DCA0…     2010-06-15 13:30: 18.000 PRIMERO 
USUARIO E JUNIO DE 2010 1000 6C90…      2010-06-24 11:50: 55.000 El class= >


Obviously de LAST

Here es una tabla del ejemplo que contiene los datos que soy uso para el antedicho. problema del

The que he encontrado que usando MIN/MAX en EntryDate es que el GUID causa agrupar a fallar. Pondría en un ejemplo de las preguntas que he estado intentando pero ser honestos, todos parecen ser inútiles, así que estarían interesados para saber algún otro vendría en el problema. class= " lineNumbers " >
1 del >

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

Respuesta : Primeras y pasadas filas de vuelta, agrupadas por las columnas.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
SELECCIONAR T.USERNAME, T.MONTH, T.YEAR, Yt.COST, Yt.GUID, Yt.ENTRYDATE, “PRIMERO” [el tipo]
DE (
	SELECCIONAR  EL USERNAME, 
			MES (ENTRYDATE) [MES], 
			AÑO (ENTRYDATE) [AÑO], 
			(ENTRYDATE) MinDate MÍNIMO
	De YourTable
	GRUPO POR EL USERNAME, MES (ENTRYDATE), AÑO (ENTRYDATE) 
) T INTERNO ENSAMBLA YourTable Yt EN T.USERNAME = Yt.USERNAME Y T.MinDate = Yt.ENTRYDATE

UNIÓN

SELECCIONAR T.USERNAME, T.MONTH, T.YEAR, Yt.COST, Yt.GUID, Yt.ENTRYDATE, “PASADO” [el tipo]
DE (
	SELECCIONAR  EL USERNAME, 
			MES (ENTRYDATE) [MES], 
			AÑO (ENTRYDATE) [AÑO], 
			Max (ENTRYDATE) MaxDate
	De YourTable
	GRUPO POR EL USERNAME, MES (ENTRYDATE), AÑO (ENTRYDATE) 
) T INTERNO ENSAMBLA YourTable Yt EN T.USERNAME = Yt.USERNAME Y T.MaxDate = Yt.ENTRYDATE
Otras soluciones  
 
programming4us programming4us