我正在尝试进行交叉表查询(使用访问表),但是我迷失了编写内部联接语句。 我的最终结果假设是“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
P.S:Table4包含很多行,然后在这里显示我不需要的代码。
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
获取查询结果的正确语句是什么? (我迷失在内心联盟......) 是否还有一种方法可以对一些数据求和,并显示table4中其他数据的值(不加总和)?
谢谢!
答案 0 :(得分: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