关于SQL查询的问题,跪求高手帮助!!

a9393047839 2013-06-30 05:51:34
t1表中有Id,PartMent,Money三个字段,里面插入数据:
insert t1 select '111','4801',10
insert t1 select '111','4802',15
insert t1 select '111','4803',25
insert t1 select '112','4801',30
insert t1 select '112','4802',45

t2表中有Id,Type,T_Money三个字段,里面插入数据:
insert t1 select '111','红利卡',30
insert t1 select '111','现金',20
insert t1 select '112','红利卡',50
insert t1 select '112','现金',25
(T2表中的Id和T1表中Id为同一个值,同一个ID例如'111'在T1表中三个部门加起来的金额为50与T2
表中对应ID'111'的T_Money字段的和50相同也是对应关系)

问题:1、统计Type类型为“红利卡”在各部门的使用金额,需要有考虑分摊
预期的显示效果是
4801 26
4802 39
4803 15
:(举列部门4803在ID'111'消费了25,但其中红利卡只占了(30/(30+20))=60%,所以4803消费的红利卡金额为25*60%=15)
求SQL语句写法
...全文
163 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
BzTech_123 2013-07-01
  • 打赏
  • 举报
回复


SELECT t1.PartMent, SUM(t1.Money * s.Pct)
FROM t1 INNER JOIN (t2.ID, CAST(SUM(CASE WHEN t2.Type='红利卡' THEN t2.T_Money ELSE 0 END)/SUM(t2.T_Money) AS DECIMAL(3,2)) AS Pct  
FROM t2 GROUP BY t2.ID 
) s ON t1.ID=s.ID 
GROUP BY t1.PartMent

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧