запрос доступа: как запросить, чтобы получить рассчитанные значения?

ПРИВЕТ,

У меня есть большая таблица, из которой я могу запросить, чтобы получить следующую таблицу

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

также я могу получить другой стол

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

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

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%

Как я могу написать запрос, чтобы получить это?

Спасибо

10.12.2008 09:39:25
2 ОТВЕТА
РЕШЕНИЕ

Как насчет:

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

Где т это имя большой таблицы.

2
10.12.2008 11:51:24
спасибо, что сделали работу. также я могу округлить процент до единой десятичной точки в самом запросе
tksy 10.12.2008 12:39:09
я могу округлить его, но как я могу получить символ% к результатам
tksy 10.12.2008 14:31:00
Один из способов: ... Формат ([CountOfCode] / DCount ("Тип", "t", "Тип =" & [Тип]), "Процент") AS [% Тип]
Fionnuala 10.12.2008 15:48:24
Если бы я хотел нарисовать графики сгенерированных таблиц, было бы лучше для меня экспортировать их в Excel и затем попытаться построить их или сделать это в самом доступе. В любом случае я бы хотел сделать это с помощью VBA.
tksy 11.12.2008 14:07:25
Тяжело сказать. Я бы использовал Access, потому что я знаком с ним и редко нуждаюсь в чем-то очень сложном. У вас ситуация может быть другой.
Fionnuala 11.12.2008 18:24:02

Предполагая таблицу, как это:

type, code, ... other columns.

Я предполагаю, что ваши первые 2 запроса что-то вроде

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

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

Тогда вы хотите сделать что-то вроде

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];

Надеюсь это поможет. Крис

2
10.12.2008 10:43:23