consulta de acesso: como a consulta para obter valores calculados?

votos
1

OI,

Eu tenho uma grande tabela da qual i pode consultar para obter a tabela a seguir

type       no of times type occurs
101            450
102            562
103            245

Também posso obter outra tabela

code      no of times code occurs
0               1222
1                750 
2                355

mas agora eu quero escrever uma consulta que poderia me dar a seguinte tabela

type  no of timescode1occurs %of timescode1 occurs out of  %of times code1 occurs out of  
                              no of times type occurs       no of times code occcurs

101          50                11%                                  6%
102          75                13%                                  10%

Como posso escrever uma consulta para obter isso?

obrigado

Publicado 10/12/2008 em 10:39
fonte usuário
Em outras línguas...                            


2 respostas

votos
2

E se:

SELECT t.Type, t.Code, COUNT(t.Code) AS CountOfCode, 
  [CountOfCode]/DCount("Code","t","Code=" & [Code])*100 AS PercentCode, 
  [CountOfCode]/DCount("Type","t","Type=" & [Type])*100 AS PercentType
      FROM t
      GROUP BY t.Type, t.Code

Onde t é o nome da tabela grande.

Respondeu 10/12/2008 em 12:51
fonte usuário

votos
2

Assumindo uma tabela como esta:

type, code, ... other columns.

Presumo suas 2 primeiras consultas são algo como

select type, count(*) from mytable group by type

select code, count(*) from mytable group by code

Então você quer fazer algo como

SELECT DISTINCTROW mytable.Type, mytable.Code, 
Count(*)/q1.[Count of type] AS [Percent Of Type],
Count(*)/q2.[Count of code] AS [Percent Of Code]
FROM mytable, 
  (select type, count(*) as [Count of type] from mytable group by type) q1,
  (select code, count(*) as [Count of code] from mytable group by code) q2
where mytable.Type =q1.Type
and mytable.Code=q2.Code
GROUP BY mytable.Type, mytable.Code, q1.[Count of type], q2.[Count of code];

Espero que isto ajude. Chris

Respondeu 10/12/2008 em 11:43
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more