Доступ - подсчет одного и того же значения в нескольких таблицах одним запросом - PullRequest
0 голосов
/ 08 января 2019

Я получил несколько разных отчетов о безопасности, с которыми я пытаюсь работать. Я хотел бы посчитать, сколько раз конкретный IP-адрес появляется в 2 разных таблицах.

Мне бы хотелось, чтобы это выглядело примерно так:

IP-адрес Таблица1 Таблица2

xxx.xxx.xxx 12 13

Я видел много людей, которые просили подсчитать отдельные значения в разных таблицах, но не разные значения в разных таблицах, поэтому я немного запутался.

Я создал свой начальный счетчик только одной таблицы, используя встроенный конструктор запросов, используя функции объединения и подсчета; но, если я попробую несколько соединений, число становится действительно странным, и я не знаю, что происходит. Access выкладывал этот SQL когда я пытался с одной таблицей:

SELECT [Dell Printers by IP].Address, Count([Apache 12-24].[Vulnerability Title]) AS [CountOfVulnerability Title]
FROM [Apache 12-24] INNER JOIN [Dell Printers by IP] ON [Apache 12-24].[Asset IP Address] = [Dell Printers by IP].Address
GROUP BY [Dell Printers by IP].Address;

Кроме того, насколько легко масштабировать до большего количества таблиц, чем просто до 2?

1 Ответ

0 голосов
/ 08 января 2019

Не зная, как ваши таблицы связаны в базе данных, я бы предложил использовать коррелированный подзапрос:

select 
  [ip addresses].[ip address],
  (select count(*) from table1 where table1.[ip address] = [ip addresses].[ip address]) as t1,
  (select count(*) from table2 where table2.[ip address] = [ip addresses].[ip address]) as t2
from
  [ip addresses]

Предполагается, что запрашиваемые IP-адреса находятся в таблице с именем ip addresses.

...