Помогите создать перекрестный запрос с помощью Access - PullRequest
1 голос
/ 11 июля 2011

Я пытаюсь сделать кросс-таблицу (с таблицами доступа), но я заблудился, записывая внутренние операторы объединений. Мой конечный результат, предположим, "QueryResult".

Таблица 1 содержит информацию о фонде, Таблица 2 - это тип данных, которыми располагают средства Таблица 3 представляет собой преобразование кодов данных в тип данных в таблице 2, а таблица 4 содержит данные.

Table1

FundID FundName
1      Fund1
2      Fund2
3      Fund3
4      Fund4
5      Fund5
6      Fund6
7      Fund7

Table2

TypeID TypeName
1      Balance
2      Yield
3      Fees
4      Deposits
5      Withdraws

Таблица3

CodeID TypeID    
KT111   1
KT112   2
KT113   3
KT115   3
KT116   4
KT117   4
KT118   5
KT119   5

Таблица 4

CodeID FundID DataVal
KT111  1      1000
KT116  2      40
KT118  3      30
KT119  3      30
KT118  2      10
KT119  2      50
KT111  2      3000
KT111  3      2000
KT112  1      1.5
KT112  2      1.0
KT112  3      0.5

P.S: Таблица4 содержит много строк, затем показанных здесь с кодами, которые мне не нужны.

QueryResult

FundID  Balance Yield Fees Deposits Withdraws
1        1,000   1.5   555   40     60
2        3,000   1.0   155   20     60
3        2,000   0.5   255   70     60

Какое правильное утверждение, чтобы получить результат запроса? (Я заблудился на внутренних соединениях ...) Есть ли способ суммировать некоторые данные и показывать значение (без суммирования) других данных из таблицы 4?

Спасибо!

1 Ответ

0 голосов
/ 11 июля 2011

, хотя я не совсем уверен во всех ваших требованиях, это может помочь вам начать:

TRANSFORM Sum(d.dataval) as DataValue
SELECT d.fundid
FROM 
((Data d
INNER JOIN fund f ON d.fundid = f.fundid)
INNER JOIN  code c ON d.codeid = c.codeid)
INNER JOIN type t on c.typeid = t.typeid
GROUP BY d.fundid
PIVOT T.Typename

Результаты:

fundid  Balance Deposits    Withdraws   Yield
1       1000                            1.5
2       3000    40      60      1
3       2000            60      0.5
...