SQL每日一题(20231106)

SQL数据库开发

共 2198字,需浏览 5分钟

 · 2023-11-08

点击关注公众号,SQL干货及时获取

    
    
后台回复:1024,获取海量学习资源
SQL刷题专栏
SQL145题系列


大家注意:

因为微信改了推送机制,会有小伙伴刷不到当天的文章,

一些比较实用的知识和信息,错过了就是错过了。

所以建议大家加个星标,就能第一时间收到推送了。

题目

有如下两张表G1106A(客户,类型,金额)

G1106B(客户,类型,金额)

希望将G1106A和G1106B中的数据进行关联后对发票进行拆分,得到如下这张表:

该如何写这个SQL?
解释,例如客户A的发票1是2340元,但是对应的收款单1只有100,那么就需要对2340元的发票先拆分100元出来给对应的收款单1,剩下的2240元形成一张新的收款单2。


测试数据

CREATE TABLE G1106A(NAME VARCHAR(5),TTYPE VARCHAR(10),VAL INT) INSERT INTO G1106A VALUES ('A','发票1',2340),('A','发票2',4680), ('A','发票3',1170),('A','发票4',2340),('A','发票5',11700),('A','发票6',2870 ),('B','发票1',2340),('B','发票2',4680),('B','发票3',1170),('B','发票4',2340),('B','发票5',11700);
CREATE TABLE G1106B(NAME VARCHAR(5),TTYPE VARCHAR(10),VAL INT) INSERT INTO G1106B VALUES('A','收款单1',100),('A','收款单2',3000),('A','收款单3',5000),('A','收款单4',7000),('A','收款单5',10000),('B','收款单1',100),('B','收款单2',3000),('B','收款单3',5000),('B','收款单4',7000);


参考答案

应读者的要求,我将参考答案公布了,有需要的同学可以在下方公众号「数据前线」(非本号)后台回复关键字:G1106,即可获取。还是建议先独立答题~

数据前线


后台回复关键字:1024,获取一份精心整理的技术干货

后台回复关键字:进群,带你进入高手如云的交流群。


    
    

推荐阅读

       
       
       
       

浏览 176
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报