当前位置: 首页 > news >正文

(大众金融)SQL server面试题(3)-客户已用额度总和

今天,面试了一家公司,什么也不说先来三道面试题做做,第三题。

那么,我们就开始做题吧,谁叫我们是打工人呢。

题目是这样的:

DEALER_INFO
经销商授信协议号码经销商名称经销商证件号注册地址员工人数信息维护日期
DEALER_NUMBERDEALER_NAMEDEALER_ID_NOADDRESSSTUFF_NUMBERMODIFY_DATE
1001001TEST_01ID_001BEIJING CHAOYANG1002020-01-01
2001001TEST_01ID_001BEIJING CHAOYANG2002020-02-01
1002002TEST_02ID_002SHANGHAI PUDONG10002020-03-15
3002002TEST_02ID_002SHANGHAI MINHANG10002020-01-20
2003003TEST_03ID_003BEIJING HAIDIAN502020-02-25
4003003TEST_03ID_003BEIJING DONGCHENG2002020-01-01
1004004TEST_04ID_004SHANGHAI HUANGPU1002020-03-01
CREDIT_LIMIT_INFO
经销商授信协议号码品牌已用额度
DEALER_NUMBERBRANDUTILIZED_LIMIT
1001001FAW1000
2001001SKODA1500
1002002FAW200
3002002AUDI400
2003003SVW500
4003003PORCHE50
1004004FAW700

DEALER_INFO表在每个经销商申请代理一个品牌的额度时,单独维护对应的基本信息。
CREDIT_LIMIT_INFO表维护每个授信协议的额度金额。                                    
问:要求以相同的证件号码为唯一标识识别为一个客户,取每个客户最近一次维护的基本信息进行报送,同时取这个客户已用额度总和。                    
最终报文数据样式:

客户名称证件号码注册地址员工人数已用额度
DEALER_NAMEDEALER_ID_NOADDRESSSTUFF_NUMBERUTILIZED_LIMIT
TEST_01ID_001BEIJING CHAOYANG2002500
TEST_02ID_002SHANGHAI PUDONG1000600
TEST_03ID_003BEIJING HAIDIAN50550
TEST_04ID_004SHANGHAI HUANGPU100700

---------------------------------------------------------------------------------------------------------------------------------

DROP TABLE IF EXISTS #DEALER_INFO;				
CREATE TABLE #DEALER_INFO (				
DEALER_NUMBER VARCHAR(20),				
DEALER_NAME VARCHAR(50),				
DEALER_ID_NO VARCHAR(50),				
ADDRESS VARCHAR(100),				
STUFF_NUMBER INT,				
MODIFY_DATE VARCHAR(10)				
);				INSERT INTO #DEALER_INFO(DEALER_NUMBER, DEALER_NAME, DEALER_ID_NO, ADDRESS, STUFF_NUMBER, MODIFY_DATE) VALUES ('1001001','TEST_01', 'ID_001', 'BEIJING CHAOYANG' , 100,  '2020-01-01');				
INSERT INTO #DEALER_INFO(DEALER_NUMBER, DEALER_NAME, DEALER_ID_NO, ADDRESS, STUFF_NUMBER, MODIFY_DATE) VALUES ('2001001','TEST_01', 'ID_001', 'BEIJING CHAOYANG' , 200,  '2020-02-01');				
INSERT INTO #DEALER_INFO(DEALER_NUMBER, DEALER_NAME, DEALER_ID_NO, ADDRESS, STUFF_NUMBER, MODIFY_DATE) VALUES ('1002002','TEST_02', 'ID_002', 'SHANGHAI PUDONG'  , 1000, '2020-03-15');				
INSERT INTO #DEALER_INFO(DEALER_NUMBER, DEALER_NAME, DEALER_ID_NO, ADDRESS, STUFF_NUMBER, MODIFY_DATE) VALUES ('3002002','TEST_02', 'ID_002', 'SHANGHAI MINHANG' , 1000, '2020-01-20');				
INSERT INTO #DEALER_INFO(DEALER_NUMBER, DEALER_NAME, DEALER_ID_NO, ADDRESS, STUFF_NUMBER, MODIFY_DATE) VALUES ('2003003','TEST_03', 'ID_003', 'BEIJING HAIDIAN'  , 50,   '2020-02-25');				
INSERT INTO #DEALER_INFO(DEALER_NUMBER, DEALER_NAME, DEALER_ID_NO, ADDRESS, STUFF_NUMBER, MODIFY_DATE) VALUES ('4003003','TEST_03', 'ID_003', 'BEIJING DONGCHENG', 200,  '2020-01-01');  				
INSERT INTO #DEALER_INFO(DEALER_NUMBER, DEALER_NAME, DEALER_ID_NO, ADDRESS, STUFF_NUMBER, MODIFY_DATE) VALUES ('1004004','TEST_04', 'ID_004', 'SHANGHAI HUANGPU' , 100,  '2020-03-01');  				DROP TABLE IF EXISTS #CREDIT_LIMIT_INFO;				
CREATE TABLE #CREDIT_LIMIT_INFO (				
DEALER_NUMBER VARCHAR(20),				
BRAND VARCHAR(50),				
UTILIZED_LIMIT INT				
);				INSERT INTO #CREDIT_LIMIT_INFO (DEALER_NUMBER, BRAND, UTILIZED_LIMIT) VALUES ('1001001','FAW'	  , 1000);			
INSERT INTO #CREDIT_LIMIT_INFO (DEALER_NUMBER, BRAND, UTILIZED_LIMIT) VALUES ('2001001','SKODA'   , 1500);				
INSERT INTO #CREDIT_LIMIT_INFO (DEALER_NUMBER, BRAND, UTILIZED_LIMIT) VALUES ('1002002','FAW'	  , 200 );			
INSERT INTO #CREDIT_LIMIT_INFO (DEALER_NUMBER, BRAND, UTILIZED_LIMIT) VALUES ('3002002','AUDI'	  , 400 );			
INSERT INTO #CREDIT_LIMIT_INFO (DEALER_NUMBER, BRAND, UTILIZED_LIMIT) VALUES ('2003003','SVW'	  , 500 );			
INSERT INTO #CREDIT_LIMIT_INFO (DEALER_NUMBER, BRAND, UTILIZED_LIMIT) VALUES ('4003003','PORCHE'  , 50  );				
INSERT INTO #CREDIT_LIMIT_INFO (DEALER_NUMBER, BRAND, UTILIZED_LIMIT) VALUES ('1004004','FAW'	  , 700 );			SELECT A.DEALER_NAME, A.DEALER_ID_NO, A.ADDRESS, A.STUFF_NUMBER, B.SUM_LIMIT				
FROM				
(				
SELECT * FROM				
(				
select DEALER_NAME, DEALER_ID_NO, ADDRESS, STUFF_NUMBER, MODIFY_DATE, 				
ROW_NUMBER() OVER(PARTITION BY DEALER_ID_NO ORDER BY MODIFY_DATE DESC) AS ROW_NUMBER				
from #DEALER_INFO A				
) T WHERE T.ROW_NUMBER = 1				
) A				
LEFT JOIN				
(				
select A.DEALER_NAME, SUM(B.UTILIZED_LIMIT) AS SUM_LIMIT				
from #DEALER_INFO A INNER JOIN #CREDIT_LIMIT_INFO B  ON A.DEALER_NUMBER = B.DEALER_NUMBER 				
GROUP BY A.DEALER_NAME				
) B				
ON A.DEALER_NAME = B.DEALER_NAME;				

查询结果如下:

结语:这个题目,在百度没有搜到,可能我的搜素能力不行吧,但是我给出了答案,希望给各位一个参考,不当之处请指出。

仁者见仁智者见智。

http://www.lryc.cn/news/288663.html

相关文章:

  • c语言笔记
  • 6轴机器人运动正解-逆解控制【1】——三种控制位姿的方式
  • c# Microsoft UI Automation
  • C#-前后端分离连接mysql数据库封装接口
  • yolov8 opencv dnn部署自己的模型
  • 插槽(64-67)
  • C# LING查询语法学习,扩展方法的使用
  • 自然语言推断:微调BERT
  • 立创EDA学习:设计收尾工作
  • ShardingSphere之ShardingJDBC客户端分库分表上
  • rust for循环步长-1,反向逆序遍历
  • 编译与运行环境(C语言)
  • 再谈Android View绘制流程
  • 分布式定时任务系列8:XXL-job源码分析之远程调用
  • python+Qt5 UOS 摄相头+麦克风测试,摄相头自动解析照片二维条码,麦克风解析音频文件
  • MongoDB日期存储与查询、@Query、嵌套字段查询实战总结
  • Windows版本Node.js常见问题及操作解决方式(小白入门必备)
  • 09.Elasticsearch应用(九)
  • ROS2常用命令工具
  • Linux之快速入门
  • C语言——操作符详解1
  • C++学习| QT快速入门
  • Android App开发-简单控件(1)——文本显示
  • [GYCTF2020]Ezsqli1
  • 【npm包】如何发布自己的npm包
  • 《WebKit技术内幕》学习之十五(2):Web前端的未来
  • 【教学类-综合练习-11】20240116 大4班 最后一次
  • 【阻塞队列】阻塞队列的模拟实现及在生产者和消费者模型上的应用
  • Cocos Creator使用VS Code调试代码配置
  • 【投稿优惠|EI优质会议】2024年材料化学与清洁能源国际学术会议(IACMCCE 2024)