日期:2014-05-16  浏览次数:20849 次

新手 数据表 矩阵计算 交叉查询
这是从实际问题中提炼出来的模型,由于原问题有点复杂,不多说。请大家帮忙看下下边的问题,帮忙解决,不胜感激!

已知:
表1:分配标准
职称A 职称B 职称C
物品甲 9 8 7
物品乙 6 5 4
物品丙 3 2 1
…… …… …… ……
其中职称固定,物品可能变动。该矩阵即为A

表2:各部门人员分布
职称A 职称B 职称C
部门1 2 3 5
部门2 3 3 5
部门3 3 4 5
部门4 1 2 6
…… …… …… ……
其中职称固定,部门可能变动。该矩阵记为B

要生成:
(动态)表3: 各部门分配
物品甲 物品乙 物品丙 ……
部门1 77 47 17
部门2 86 53 20
部门3 94 58 22
部门4 67 40 13
……
该矩阵记为C

在excel中以上计算可通过矩阵相乘函数MMULT完成,即

C=B*A’ 即 =MMULT(分布,TRANSPOSE(标准))

但每次计算完之后,如果有新的数据增减还要重新命名区域,很不方便。考虑可以用vba实现动态更改命名区域(即A,B,C的大小),但小弟不才,目前无法实现。
考虑到还要与其他表格联系,便于扩展,想用数据库实现以上功能,发现困难更大,还望高手指点!谢谢!
欢迎回帖,或直接指导:QQ@EMAIL:liangxinhui@qq.com
谢谢!

------解决方案--------------------
SQL code
TRANSFORM Sum(a.职称A*b.职称A+a.职称B*b.职称B+a.职称C*b.职称c) AS f3OfSum
SELECT b.部门
FROM 表1 a ,表2 b
GROUP BY b.部门
PIVOT a.物品;