SQL 题目,初学者,需要高手给答案。重谢!

题目一:
SQL 数据库sjkaaa中的一张表card 有三个字段
fundaccount int 资金账号
bankno char(1) 银行代码
cardno char(20) 银行卡号
其中银行代码为 2 表示招商银行,招行卡号原有12位和15位两种,现在需统一将12位卡号升至15位,原15位保持不变,12位升位规则是在原卡号前加“100”,请写SQL语句来完成这样的升位。

题目二:
两个SQL表
客户表:cusinfo 交易信息表:jyinfo
cusid 客户代码 cusid 客户代码
name 姓名 money 交易金额
telno 电话 sxf 手续费
addr 地址 way 委托方式 注: way=1时为电话委托
date 成交时间
请用SQL 语句列出1998年3月份,委托方式是电话委托的成交金额总和,排名前5位客户的汇总明细表,字段为:客户代码、姓名、总成交金额、总手续费。

请高手帮忙写出正确答案

第1个回答  2014-09-24
create table card (
fundaccount int ,
bankno char(1),
cardno char(20)
)
insert into card
select 1,'1','111111111111'
union all
select 2,'2','111111111111'
union all
select 3,'2','222222222222222'

update card set cardno='100'+cardno from card
where bankno='2'
and len(LTRIM(RTRIM(cardno))) =12

select *,len(cardno) from card
---------------------
第二个懒的建表的,核心就是求出客户代码,然后在关联
select top 5 客户代码 from ( select

客户代码,姓名,SUM(XX) AS XX FROM XXX

where way=1 and year(date)=1998 and month(date)=3
GROUP BY
客户代码,姓名
)
order by 成交金额
第2个回答  推荐于2016-09-27
update card set cardno='100'+cardno where bankno='2' and len(cardno)=12

select top 5 cusinfo.cusid,cusinfo.name,sum(jyinfo.money),sum(jyinfo.sxf) from jyinfo left join cusinfo on jyinfo.cusid=cusinfo.cusid
where jyinfo.way=1 and datediff(month,jyinfo.date,‘1998-3-1’)=0
group by cusinfo.cusid,cusinfo.name
order by sum(jyinfo.money) desc

大概应该是这样子本回答被提问者采纳
相似回答