Salve,
io userei una windowing function, vedi ROW_NUMBER() OVER (PARTITION BY i.IdCliente ORDER BY i.Data, i.Id) sulla tabella Ingressi… userei anche DATENAME(weekday, i.Data) per avere direttamente il nome del giorno…
questo ritornerebbe, per ogni IngressoCliente, il row number dell'ingresso.. filtri per rn = 3, metti in join con dbo.Clienti, ….
INSERT INTO dbo.Clienti
VALUES (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd');
INSERT INTO dbo.Ingressi
VALUES (1, '2023-01-01'), (1, '2023-01-02'), (1, '2023-01-03'), (1, '2023-01-03')
, (2, '2023-01-01')
, (3, '2023-01-01'), (3, '2023-01-02')
, (4, '2023-01-02'), (4, '2023-01-04'), (4, '2023-01-04')
result:
Id Nome dateName
----------- ----- -----------
1 a Tuesday
4 d Wednesday
salutoni romagnoli
–
Andrea