2017-02-17 4 views
0

Я новичок в доступе, но у меня не получается выполнить определенный шаг. У меня есть две таблицы:Доступ к 2013 г. Попытка объединить данные в одну таблицу

Таблица 1: MAL-Topic; Использование строки «Тема»

Таблица 2: MAL-Document; Использование строки «DocumentName»

У меня есть внешний ключ, который имеет все документы, назначенные для темы.

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

Как бы вы это сделали?

ответ

0

Я собираюсь назвать ваши две таблицы: topic_table и document_table. Конечно, когда вы запускаете код, вам нужно будет заполнить имена прочитанных таблиц вместо них.

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

COUNT (*) подсчитывает количество записей в вашей объединенной таблице для каждого идентификатора и имени темы.

SELECT t.id, t.name, COUNT(*) 
FROM topic_table t 
INNER JOIN document_table d ON t.id = d.topic_id 
GROUP BY t.id, t.name 

Редактировать следующий комментарий:

SELECT t.name & '(' & COUNT(*) & ')' 
FROM topic t 
INNER JOIN document d ON t.id = d.topic_id 
GROUP BY t.name 
+0

Я взял то, что вы сказали, и пришел трейлеры следующие ВЫБРАТЬ t.ID, t.TopicName, граф (*) AS Expr1 ОТ MALTopic AS t INNER JOIN MALDocument AS d ON t.id = d.TopicID GROUP BY t.ID, t.TopicName; Теперь я получаю три столбца данных, ID, TopicName и Expr1, которые являются количеством документов. Как мне получить эти три столбца, так что у меня есть только имя темы с подсчетом в имени темы? TopicName (19) Я делаю это в Microsoft Access. – kf7ebx

+0

ОК - обновление сделано. Посмотрите, работает ли это! – kbball

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