zrtchp
zrtchp
2018-07-12 08:46
采纳率: 33.3%
浏览 1.8k

SQL数据表中如何拆分记录

数据表1(基础数据):
项目1 日期 金额
A 3月31日 1000元
B 3月31日 2300元
C 3月31日 1200元
A 6月30日 3000元
B 6月30日 2000元
C 6月30日 3200元
数据表2(拆分比例)
项目 部门 比例
A aaa 0.5
A bbb 0.5
B aaa 1
C aaa 0.3
C bbb 0.2
C ccc 0.5

希望得到的查询最终结果是

项目1 部门 日期 金额
A aaa 3月31日 500元
A bbb 3月31日 500元
B aaa 3月31日 2300元
C aaa 3月31日 360元
C bbb 3月31日 240元
C ccc 3月31日 600元
A aaa 6月30日 1500元
A bbb 6月30日 1500元
B aaa 6月30日 2000元
C aaa 6月30日 960元
C bbb 6月30日 640元
C ccc 6月30日 1600元

请问这段SQL语言该怎么写,或者是如果不能写有何其他方式达到这个目的。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • u012955518
    arbortwb 2018-07-12 08:51
    已采纳

    这个使用 cross join 返回迪卡乘积的数据,可以加条件过滤数据。望采纳,急用分

    点赞 评论
  • Elephant3G
    Elephant3G 2018-07-12 08:52

    试一下这个:

    select a.项目1, b.部门, a.日期, a.金额*b.比例
    from 数据表1 a
    join 数据表2 b on b.项目=a.项目1

    点赞 评论
  • zrtchp
    zrtchp 2018-07-12 09:15

    感谢回复。。。刚刚没有注意到。。

    点赞 评论
  • pengyongnet
    pengyongnet 2018-07-13 08:17

    查询语句的不同,搜索的内容不同相当拆分

    点赞 评论
  • weixin_37688692
    weixin_37688692 2018-07-17 09:02

    select a.项目1,b.部门,a.日期,(a.金额 * b.比例,2) as 金额 from 数据表1 as a
    left join 数据表2 as b no a.项目1 = b.项目1

    点赞 评论

相关推荐