SQL выберите запрос, чтобы найти запись в определенном количестве записей

голоса
0
Table: MyData
============================
id | Name | Surname
----------------------------
1  | AB   | ABAB
2  | CD   | CDCD
3  | EF   | EFEF
4  | CD   | CDCD
5  | CD   | CDCD
6  | AB   | ABAB
7  | CD   | CDCD 
8  | CD   | CDCD

Выберите idдля записи для конкретного имени для данного графа так , а именно: Во- первых я получаю различные имена

AB
CD
EF

Тогда я хотел бы получить IDза 3 появления каждого счета , так начиная с AB

For name AB
Start with id = 1
eg: SELECT id FROM MyData WHERE id >= 1 Name = 'AB' and count <= 3 --Should return id=6 as there are only 2 occurrences so it should just return the last one

For name CD
Start with id = 1
eg: SELECT id FROM MyData WHERE id >= 1 Name = 'CD' and count <= 3 --Should return id=5 as record 5 contains the 3 occurrence
Set id = returned id + 1 so start id = 6
eg: SELECT id FROM MyData WHERE id >= 6 Name = 'CD' and count <= 3 --Should return id=8 as from id 6 the last occurrence is at id 8

For name EF
Start with id = 1
eg: SELECT id FROM MyData WHERE id >= 1 Name = 'EF' and count <= 3 --Should return id=3

Я изо всех сил, чтобы найти чистый способ сделать это с помощью MS SQL. Любая помощь приветствуется

Задан 25/11/2015 в 08:37
пользователем
На других языках...                            


1 ответов

голоса
0

For name AB
Start with id = 1
eg: SELECT id FROM MyData WHERE id >= 1 Name = 'AB' and count <= 3

Попробуйте ниже запрос и сделать соответствующие изменения -

select top 1 id from (SELECT top 3 id FROM PPBSample WHERE id >= 1 and Name = 'AB' order by id ) as test order by id desc

Примечание - В приведенном выше изменении запроса id >= your numberи , Nameсоответственно, согласно вашему требованию.

Ответил 25/11/2015 в 09:30
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more