2016-01-04 4 views
2

Для целей QA мне необходимо предоставить образец записей об ошибках, а также общее количество записей об ошибках. Для фона этот образец должен быть ограничен ~ 1000 записями, поскольку результаты запроса хранятся в объекте Excel recordSet и выводятся в текстовый файл. Это звучит очень неуклюже (и есть), но есть причины для этого.Запрос, чтобы отобразить общее количество строк, возвращенных, но с ограниченным набором результатов

Я знаю, что я могу сделать:

SELECT TOP 1000 
primaryKey 
,expectedValue 
,actualValue 
,totalErrors 
FROM errorTable 
INNER JOIN (SELECT count(*) as totalErrors FROM errorTable) AS tmp 
    ON 1 = 1 

Но я хотел бы более эффективный способ, так как на самом деле errorTable подзапрос, который находит все записи об ошибках и может получить довольно вычислительно дорого.

+0

Вы можете также перекрестное соединение и не использовать 1 = 1 – Hogan

+0

Я попробовал, что первый, но продолжал получив синтаксическую ошибку, я до сих пор не знаю, почему. –

+0

ОК, я отправил пример того, как сделать крест-соединение, если вы заинтересованы. – Hogan

ответ

2

Просто используйте оконные функции:

SELECT TOP 1000 primaryKey, expectedValue, actualValue, 
     COUNT(*) OVER() as totalErrors 
FROM errorTable; 
+0

Duh ... отлично работает. Благодаря! –

0

Вы можете сделать перекрестное соединение, как это:

 Смежные вопросы

  • Нет связанных вопросов^_^