SQL语句练习题答案
- 格式:doc
- 大小:49.50 KB
- 文档页数:7
SQL练习题及答案:
请用SQL语句实现以下功能。
(1至6题每题10分,7至8题每题20分)
1. 如何用SQL语句求带辅助核算206科目12月的余额在贷方的合计值?cendd_c为余额方向字段,字符型,me为余额。
SELECT sum(me)
FROM gl_accass
WHERE ccode="206" and cendd_c="贷" and iperiod=12 2.如何查找GL_accass中的科目在科目表中不是末级的?(如下3种写法均正确)
SELECT ODE ,B.BEND
FORM GL_ACCASS AS A JOIN CODE AS B
ON ODE=ODE
WHERE B.BEND =0
select distinct ccode
from gl_accass
where ccode in(select ccode from code where bend=0) select distinct ccode
from gl_accass
where ccode not in(select ccode from code where bend=1)
3. 如何将AA库中的department表用语句把数据导入BB库中?
INSERT INTO BB..DEPARTMENT
SELECT * FROM AA..DEPARTMENT
4.如何查辅助总帐中的部门编号(cDEPT_ID)在部门目录(department 表cdepcode)中不存在的记录?SELECT cDEPT_ID FROM GL_ACCASS
WHREE cDEPT_ID NOT IN
(SELECT cdepcode FROM DEPARTMENT)
5. 如何在部门目录表中查找部门名称(CDEPNAME)重复的记录数?
SELECT CDEPNAME, COUNT(CDEPNAME) FROM DEPARTMENT
GROUP BY CDEPNAME
HA VING COUNT(CDEPNAME)>1;
6. 已知有表R(sno, sname, age),其中sno表示学生的学号,类型为Char(8),前4位表示入学年份。
查询所有2003年入学的学生姓名(sname),SQL语句是
SELECT sname FROM R WHERE sno LIKE ′2003%′
7. 判断题:
A、update b set b.imoney= b.imoney*1.1 where month>=2 and id in (select id from a where = ‘张%’)
B、update b set b.imoney= b.imoney*1.1 where month>=2 and id in (select id from a where like ‘张%’)
C、update b set b.imoney= b.imoney*1.1 from a inner join b on a.id=b.id where b.month>=2 and like ‘张%’
D、update b set b.imoney= b.imoney*1.1 from b left join a on b.id=a.id where b.month>=2 and like ‘张%’
答案:BCD
8、用一条SQL语句算出商品A,B目前还剩多少?(提示:可以利用子查询分别分组求和,然后再联接相减)
表一:INQuan
表二:OUTQuan
注:如果一条语句不能完成,可考虑用多条语句完成,但少得分
以下任意一条语句均正确:
语句1
select INQuan.商品名称,sum(入库数量)-SUM(OUTQuan.出库数量) AS 剩余数量from INQuan join (select 商品名称,SUM(出库数量) as 出库数量from OUTQuan
group by 商品名称) as OUTQuan on
INQuan.商品名称=OUTQuan.商品名称
group by INQuan.商品名称
语句2
select A.商品名称,R-C AS 剩余数量from
(select INQuan.商品名称,sum(入库数量) AS R from INQuan
group by INQuan.商品名称) AS A
join (select 商品名称,SUM(出库数量) as C from OUTQuan
group by 商品名称) as B on
A.商品名称=
B.商品名称
语句3。