日期:2014-05-18  浏览次数:20561 次

求一个 加权平均值 但是权值和数值不在一个表中的SQL语句 谢谢
在VIEW中求出一个加权平均值
比如有 表A(A_ID, A_数值, A_条件) B(B_ID, B_A权值, A_ID, B_条件)
A中ID和数值都有很多个 B中有每个A_ID的数值对应的权值为B_A权值
本来想直接用SUM(A_数值*B_A权值)/SUM(B_A权值)但是这样算出来。。结果不对。。应该是权值和数值没有对应好。。
请教下应该怎么弄 新手 麻烦写的详细点。。按照下面那样全部写全最好了 非常感谢

CREATE VIEW X

AS SELECT

from 

where A_条件= XXX

group by

------解决方案--------------------
SQL code

IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'A')
BEGIN
    DROP TABLE A
END
GO
CREATE TABLE A
(    A_ID INT,
    A_数值 INT,
    A_条件 VARCHAR(100)
)
GO
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'B')
BEGIN
    DROP TABLE B
END
GO 
CREATE TABLE B
(
    B_ID INT,
    B_A权值 INT,
    A_ID INT,
    B_条件 VARCHAR(100)
)
GO

INSERT INTO A
SELECT 1,4,'haha' UNION
SELECT 2,4,'hihi' UNION
SELECT 3,2,'hoho'

INSERT INTO B
SELECT 1,40,1,'haha' UNION
SELECT 2,60,2,'hihi' UNION
SELECT 3,20,3,'hoho'


SELECT SUM(B_A权值 * A_数值)/SUM(A_数值) AS Avg
FROM A , B
WHERE A.A_ID = B.A_ID

Avg
44