Hola,
Pido disculpas de antemano por esta cuestión básica pero no se como
sacarla.
Suponiendo una tabla como la que sigue:
CREATE TABLE [dbo].[test] (
[documento]char(10) COLLATE Modern_Spanish_CI_AS NOT NULL,
[cliente]char(10) COLLATE Modern_Spanish_CI_AS NOT NULL,
[fecha]datetime NOT NULL,
[importe]numeric(18, 0) NOT NULL,
CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED ([documento], [cliente])
)
ON [PRIMARY]
GO
Y estos datos:
INSERT INTO [dbo].[test] ([documento], [cliente], [fecha], [importe])
VALUES ('02', 'cliente3', '20740415', 48);
INSERT INTO [dbo].[test] ([documento], [cliente], [fecha], [importe])
VALUES ('10', 'cliente1', '20070401', 15);
INSERT INTO [dbo].[test] ([documento], [cliente], [fecha], [importe])
VALUES ('14', 'cliente1', '20070402', 48);
INSERT INTO [dbo].[test] ([documento], [cliente], [fecha], [importe])
VALUES ('18', 'cliente2', '20070110', 14);
INSERT INTO [dbo].[test] ([documento], [cliente], [fecha], [importe])
VALUES ('19', 'cliente1', '20070210', 15);
INSERT INTO [dbo].[test] ([documento], [cliente], [fecha], [importe])
VALUES ('25', 'cliente3', '20070401', 14);
INSERT INTO [dbo].[test] ([documento], [cliente], [fecha], [importe])
VALUES ('58', 'cliente1', '20070102', 41);
Me gustaría obtener de una lista ordenada por cliente ASC ,documento DESC
las primeras n filas de cada cliente.
Por poner un ejemplo, con los datos de arriba, quisiera obtener este
resultado
cliente documento
cliente1 58
cliente2 18
cliente3 25
En este caso quiero mostrar la primera fila de cada cliente.
¿Cómo podría ser el SElect?
Muchísimas gracias por vuestra ayuda.
José Luis Capel
Leer las respuestas