Как объединить top и count в ms access sql, чтобы получить все записи, кроме 1-го? - PullRequest
0 голосов
/ 27 августа 2018

Как объединить top и count в ms access sql, чтобы получить все записи, кроме 1-го?т.е. исключить 1-ю запись, но не знать количество существующих записей.

Я полагаю, что sql будет что-то вроде:

SELECT TOP 

(SELECT COUNT(*) 
FROM Company LEFT JOIN CompanySecretary ON Company.[Company Number] = CompanySecretary.[Company Number]
WHERE Company.[Company Number]=[Forms]![Company]![Company Number]
- 1)

Company.[Company Number], CompanySecretary.[Name]
FROM Company LEFT JOIN CompanySecretary ON Company.[Company Number] = CompanySecretary.[Company Number]
WHERE Company.[Company Number]=[Forms]![Company]![Company Number]
ORDER BY Company.[Company Number] ASC, CompanySecretary.[Name] ASC;

Например

Company.[Company Number] | CompanySecretary.[Name] 
---------------------------------------------------
                     002 | Mark 
                     002 | Paul 
                     002 | William 

Ожидаемый результат будет:

Company.[Company Number] | CompanySecretary.[Name] 
---------------------------------------------------
                     002 | Paul 
                     002 | William 

Спасиботебя так много.Благодарный.

1 Ответ

0 голосов
/ 28 августа 2018

Если в одной компании нет двух секретарей с одинаковым именем

SELECT TOP 1 Company.[Company Number], CompanySecretary.[Name]
 FROM Company LEFT JOIN CompanySecretary 
              ON Company.[Company Number] = CompanySecretary.[Company Number]
 WHERE Company.[Company Number]=[Forms]![Company]![Company Number]
 ORDER BY Company.[Company Number] ASC, CompanySecretary.[Name] ASC

Это пара значений, исключаемых из набора результатов

Позволяет создать это значение как qTop1 в запросах Access.

Теперь желаемый запрос будет

SELECT Company.[Company Number], CompanySecretary.[Name]
 FROM Company LEFT JOIN CompanySecretary 
               ON Company.[Company Number] = CompanySecretary.[Company Number]
 WHERE Company.[Company Number]=[Forms]![Company]![Company Number]
       AND NOT EXISTS (SELECT 1 FROM qTop1 
                        WHERE qTop1.[Company Number] = Company.[Company Number]
                               AND qTop1.Name = CompanySecretary.[Name])    
 ORDER BY Company.[Company Number] ASC, CompanySecretary.[Name] ASC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...