1

我正在尝试进行交叉表查询(使用访问表),但是我在编写内部连接语句时迷路了。我的最终结果假设是“QueryResult”。

表1是基金信息,表2是基金拥有的数据类型表3是数据代码到表2中类型数据的转换,表4是数据。

表格1

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

表2

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

PS:Table4 包含很多行,然后在这里显示我不需要的代码。

查询结果

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

获取查询结果的正确语句是什么?(我在内部连接上迷路了......)还有没有办法对一些数据求和,并显示 table4 中其他数据的值(不求和)?

谢谢!

4

1 回答 1

0

虽然我不确定您的所有要求,但这可能会让您入门:

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
于 2011-07-11T11:43:12.393 回答