Подсчет записей из другой таблицы для включения в результаты связанной таблицы - PullRequest
0 голосов
/ 15 марта 2020

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

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

enter image description here

Я добавил дополнительный запрос к адаптеру таблицы (как вы можете видеть на скриншоте), который делает что нужно сделать (без учета связанных идентификаторов), думая, как это сделать. Я хотя бы на правильном пути? Запрос выглядит так:

SELECT COUNT(*) AS WorkerCount
FROM (tblJobLaborTech INNER JOIN tblJobLabor ON tblJobLaborTech.JobLaborID = tblJobLabor.JobLaborID)
WHERE  (tblJobLabor.JobLaborID = 494)

И, конечно, мне нужно изменить 494 на переменную, которая будет соответствовать соответствующей записи, когда он выполняется, но

WHERE (tblJobLabor.JobLaborID = tblJobLaborTech.tblJobLaborTechID)

не кажется для предварительного просмотра вообще (для параметра не задано значение)

, поэтому я также попытался

WHERE (tblJobLabor.JobLaborID = @JLID)

, который также не выполняет предварительный просмотр.

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

1 Ответ

1 голос
/ 15 марта 2020

Вам не нужно делать это с помощью БД. Таблица данных может подсчитывать записи, присутствующие в дочернем отношении

. В свой tblJobLabor добавьте еще один столбец данных (щелкните правой кнопкой мыши, добавьте >> столбец) и установите для его свойства Expression значение:

Count(Child(XXX).JobLaborID)

Замените XXX именем этой DataRelation, которое я выделил:

enter image description here

Дополнительную информацию можно найти, посмотрев на довольно объемную документацию по DataColumn.Expression at https://docs.microsoft.com/en-us/dotnet/api/system.data.datacolumn.expression?view=netframework-4.8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...