Uma consulta de seleção selecionando uma instrução select
Eu nem sei se estou fazendo essa consulta do jeito certo. Existe umSandwiches
tabela que tem cerca de 7 campos e 2 deles são comboboxes (Type
eBread
).
Então eu fiz uma consulta que combina todos os valores da caixa de combinação em uma consulta, assim:
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;
Eu recebo os valores fixos das tabelas agora Eu quero contar todos os sanduíches em cadaTypesAndBreads.TBName
. Eu tenho isso, só para ter certeza de que funciona com todos os sanduíches:
SELECT TypesAndBread.Type, TypesAndBread.TBName,
(SELECT Count(Sandwiches.[SandwichID]) As SandwichCount
FROM Sandwiches) As SandwichCount
FROM TypesAndBread;
Mas quero referenciar o Type atual e TBName dentro da subconsulta. Algo assim:
SELECT TypesAndBread.Type, TypesAndBread.TBName,
(SELECT Count(Sandwiches.[SandwichID]) As SandwichCount
FROM Sandwiches
WHERE Sandwiches.[TypesAndBread.Type] = Sandwiches.[TypesAndBread.TBName]) As SandwichCount
FROM TypesAndBread;
Mas é claro que isso não funciona. Eu não acho que vai, só pensei em tentar. Eu estava pensando em talvez construir a consulta com VBA quando eles abrem o relatório que esta consulta será baseada.
Então eu acho que minha pergunta é: Existe uma maneira de referenciar os campos atuais selecionados em uma subconsulta? Ou há uma maneira diferente de abordar isso?
Obrigado pela ajuda
EDITAR: Minha estrutura de tabela é assim:
Sandwiches
campos
| SandwichID | Name | Date Added | Chef | Sandwich Type | Bread | Reviewed By |
OndeSandwich Type
eBread
são campos de pesquisa para estas tabelas:
Sandwiches Types
campos
| Sandwich Type |
Breads
campos
| Bread |
A consulta TypesAndBreads combinou as tabelas Tipos de sanduíches e pães, mas a razão para isso é que eu posso obter a contagem de todos os sanduíches que têm esse tipo ou pão. Um resultado como este:
+=============================================+
| Type | TBName | SandwichCount |
+=============================================+
| Sandwich Type | Turkey Club | 10 |
| Bread | Italian | 5 |
| Bread | Garlic | 8 |
+---------------------------------------------+
a primeira linha do resultado do exemplo diz basicamente que há 10 sanduíches no registro com o campo Sandwich Type igual ao Turkey Club.
Espero que isso explique melhor.