Я даже не знаю, правильно ли я делаю этот запрос.
Существует таблица Sandwiches
, в которой есть 7 полей, а 2 из них являются списками (Type
и Bread
).
Итак, я сделал запрос, который объединяет все значения comboboxes в один запрос, например:
SELECT TypesAndBreads.TBName, TypesAndBreads.Type
FROM (SELECT [Sandwiches Types].[Sandwich Type] As TBName, "Sandwich Type" As Type
FROM [Sandwiches Types]
UNION ALL
SELECT Breads.Bread As TBName, "Bread" As Type
FROM Breads) AS TypesAndBreads;
Я получаю плоские значения таблиц, теперь хочу подсчитать все бутерброды под каждым TypesAndBreads.TBName
. У меня есть это, просто чтобы убедиться, что он работает со всеми бутербродами:
SELECT TypesAndBread.Type, TypesAndBread.TBName,
(SELECT Count(Sandwiches.[SandwichID]) As SandwichCount
FROM Sandwiches) As SandwichCount
FROM TypesAndBread;
Но я хочу ссылаться на текущий тип и TBName внутри подзапроса. Что-то вроде этого:
SELECT TypesAndBread.Type, TypesAndBread.TBName,
(SELECT Count(Sandwiches.[SandwichID]) As SandwichCount
FROM Sandwiches
WHERE Sandwiches.[TypesAndBread.Type] = Sandwiches.[TypesAndBread.TBName]) As SandwichCount
FROM TypesAndBread;
Но, конечно, это не сработает. Я не думал, что так будет, просто подумал о том, чтобы попробовать. Я думал о том, чтобы построить запрос с помощью VBA, когда они откроют отчет, в который будет базироваться этот запрос.
Итак, я думаю, мой вопрос: Есть ли способ ссылаться на текущие выбранные поля в подзапросе? Или есть другой способ приблизиться к этому?
Спасибо за помощь
EDIT: Моя структура таблицы такова:
Sandwiches
поля
| SandwichID | Name | Date Added | Chef | Sandwich Type | Bread | Reviewed By |
где Sandwich Type
и Bread
являются полями поиска для этих таблиц:
Sandwiches Types
поля
| Sandwich Type |
Breads
поля
| Bread |
В запросе TypesAndBreads объединены таблицы Sandwiches Types and Breads, но причина этого в том, что я могу получить счет всех бутербродов, имеющих этот тип или хлеб. Результат такой:
+=============================================+
| Type | TBName | SandwichCount |
+=============================================+
| Sandwich Type | Turkey Club | 10 |
| Bread | Italian | 5 |
| Bread | Garlic | 8 |
+---------------------------------------------+
В результате первой строки примера говорится, что в записи записано 10 бутербродов с полем типа "Сэндвич", равным турецкому клубу.
Я надеюсь, что это объяснит это лучше.