22,207
社区成员
发帖
与我相关
我的任务
分享
/*再建一个表 TB_B*/
CREATE TABLE [TB_B]
(
shuju varchar(10) not null,--存放诸如A、B、C之类的数据
XID VARCHAR(3) not null, --与TB_A表外键关联
per int not null --存放百分比的字段
)
go
/*插入测试数据*/
INSERT INTO [TB_B]
SELECT 'A','001',60
UNION SELECT 'A','002',40
UNION SELECT 'B','001',30
UNION SELECT 'B','002',50
UNION SELECT 'B','003',20
--......等等
/*那么在查询的时候可以这么做*/
SELECT [TB_B].[shuju],SUM([TB_B].[per]*[TB_A].[VALUE])/100--正确结果未必是整数,如果保留整数就这么做,如果需要留小数则 CAST(SUM([table_b].[per]*[TB_A].[VALUE]) AS DECIMAL(9,2))/100 其中的2可换成要保留的位数
FROM [TB_A] JOIN [TB_B] ON [TB_A].[XID]=[TB_B].[XID]
GROUP BY [TB_B].[shuju]