oracle sql查询练习题2带答案(10个)

时间:2023-02-24 07:35:34

1、  行列转换

年度:2015年全年

总税额大于5千万

查询结果如下:

登记序号

总税额

税收收入

非税收入

12370098000027241560

276543059.4

150369100.5

105144965.8

12370098000026022197

262856752.9

249497504.3

11132707.2

12370098000025786413

245802567.4

244272893.9

1274727.87

12370098000026968525

102042377.1

101630179.6

343497.97

12370098000028266865

79120544.87

78398072.93

602059.94

12370098000026702406

74455827.95

71363270.83

2577130.93

12370098000027371755

62655970.46

61934681.14

601075.22

12370098000029071319

57211771.16

55512179.87

1416326.07

12370098000027592066

54143341.94

52626757.92

1263820.02

 

2、 查询出全年实缴金额(没有的用0填充)

2015年全年

年度

月份

实缴金额

2015

01

2982060459.33

2015

02

1059210788.26

2015

03

1075718781.07

2015

04

0.00

2015

05

0.00

2015

06

0.00

2015

07

0.00

2015

08

0.00

2015

09

0.00

2015

10

0.00

2015

11

0.00

2015

12

 

 

3、计算累计金额与当月金额

2015年全年

当月金额:入库日期是当月的

累计金额:本年度之前月份及当前月份金额的合计

年度

月份

当月金额

累计金额

2015

01

2982060459.33

2982060459.33

2015

02

1059210788.26

4041271247.59

2015

03

1075718781.07

5116990028.66

4、查询纳税人登记信息表(DJ_NSRXX)中经营地址在花园路及名称中包含服装店的企业数

生产经营地址:SCJYDZ

纳税人名称:NSRMC

结果:5

5、查询纳税人登记信息表中注册地址为空的企业数

注册地址:ZCDZ

结果:36202

6、在税务机关代码中查询出16地市与山东省的名称

提示:

税务机关代码表:DM_GY_SWJG

过滤

首先查询出市本级及省本级的税务机关名称(代码结构:237+2个数字+6个0),并排除'山东省地方税务局直属征收局' 和 '山东省地方税务局稽查局'

然后对查出的结果进行处理

结果

名称

山东省

济南市

淄博市

枣庄市

东营市

烟台市

潍坊市

济宁市

泰安市

威海市

日照市

莱芜市

临沂市

德州市

聊城市

滨州市

菏泽市

7、计算环比

要求:

           按年月分组

           增长额计算:(入库金额-上月入库金额)/上月入库金额 *100

         注意1月的特殊情况

年月

入库金额

上月入库金额

增长率(环比)

201501

2982060459

0

-

201502

1059210788

2982060459

-64.48%

201503

1075718781

1059210788

1.56%

 

8、计算占比

占比计算:本月税额/全年税额*100

时间:2015年全年

 

年月

本月税额

占全年比重(%)

201501

2982060459.33

58.28

201502

1059210788.26

20.70

201503

1075718781.07

21.02

 

9、查询2015年2月份至少缴纳纳营业税和城市维护建设税其中一种的企业数

营业税代码:10103

城市维护建设税:10109

结果:14298

 

10、查询征收项目最多的企业名称

时间2015年全年

纳税人名称

济南世茂置业有限公司

 答案

1.
SELECT djxh 登记序号
  ,round(sum(sjje),2) 总税额
  ,round(sum(decode(substr(zsxm_dm,1,3),'101',sjje,0)),2) 税收收入
  ,round(sum(decode(substr(zsxm_dm,1,3),'103',sjje,0)),2) 非税收入
  FROM zs_jks
  where to_char(rkrq,'yyyy')='2015'
GROUP BY djxh
HAVING round(sum(sjje),2) > 50000000
order by round(sum(sjje),2) desc;
2.
SELECT nd.nd,yf.yf,sum(nvl(sjje,0)) sjje FROM nd
JOIN yf ON 1=1
LEFT JOIN zs_jks ON nd.ND = to_char(rkrq,'yyyy') AND yf.yf=to_char(rkrq,'mm')
where nd.nd='2015'
GROUP BY nd.ND,yf.YF
ORDER BY nd.nd,yf.yf;
3.
select t1.* from (
SELECT
ny.nd,ny.yf,sum(CASE WHEN to_char(jks.rkrq,'mm')=ny.yf THEN sjje ELSE 0 END) AS dyje
,sum(sjje) ljje
FROM zs_jks jks
JOIN (SELECT * FROM nd JOIN yf ON 1=1) ny ON to_char(jks.rkrq,'yyyy')=ny.nd AND to_char(jks.rkrq,'mm')<=ny.yf
GROUP BY ny.nd,ny.yf) t1
join (select distinct to_char(rkrq,'yyyy') nd,to_char(rkrq,'mm') yf from zs_jks) t2 on t1.nd=t2.nd and t1.yf=t2.yf
order by t1.nd,t1.yf;
4.
SELECT count(1) FROM dj_nsrxx
where scjydz like '%花园路%' and nsrmc like '%服装店%'
5.
SELECT count(1) FROM dj_nsrxx
where zcdz is null
6.
SELECT REPLACE(swjgmc,'地方税务局','') mc FROM dm_gy_swjg
WHERE SWJG_DM LIKE '237__000000' and swjgmc <> '山东省地方税务局直属征收局' and swjgmc <> '山东省地方税务局稽查局'
order by SWJG_DM;
7.
SELECT t1.ny 年月,t1.sjje 实缴金额,nvl(t2.sjje,0) 上月实缴金额
,case when nvl(t2.sjje,0)=0 then '-' else round((t1.sjje-nvl(t2.sjje,0))/nvl(t2.sjje,0)*100,2)||'%' end "增长率(环比)" from (
SELECT to_char(rkrq,'yyyymm') ny,
sum(sjje) sjje
FROM zs_jks
GROUP BY to_char(rkrq,'yyyymm')) t1
left join (
SELECT to_char(rkrq,'yyyymm') ny,
sum(sjje) sjje
FROM zs_jks
GROUP BY to_char(rkrq,'yyyymm')) t2 ON t1.ny=t2.ny+1;
order by t1.ny;
8.
SELECT to_char(rkrq,'yyyymm'),sum(sjje) sjje
,round(sum(sjje)/(select sum(sjje) from zs_jks where to_char(rkrq,'yyyy')='2015')*100,2) zb
FROM zs_jks
WHERE to_char(rkrq,'yyyy')='2015'
GROUP BY to_char(rkrq,'yyyymm')
ORDER BY to_char(rkrq,'yyyymm');
9.
SELECT count(DISTINCT djxh) FROM zs_jks
where (zsxm_dm = '10103' or zsxm_dm = '10109') and to_char(rkrq,'yyyymm')='201502';
10.
SELECT nsrmc
FROM dj_nsrxx
WHERE djxh IN
  (SELECT djxh
  FROM zs_jks
  WHERE TO_CHAR(rkrq,'yyyy')='2015'
  GROUP BY djxh
  HAVING COUNT(DISTINCT zsxm_dm) =
    (SELECT MAX(xms)
    FROM
      (SELECT djxh,
        COUNT(DISTINCT zsxm_dm) xms
      FROM zs_jks
      WHERE TO_CHAR(rkrq,'yyyy')='2015'
      GROUP BY djxh
      )
    )
  );
 
  -------------或者---------
SELECT nsrmc
FROM dj_nsrxx
WHERE djxh IN
  (SELECT djxh
  FROM
    (SELECT djxh,
      COUNT(DISTINCT zsxm_dm) xms
    FROM zs_jks
    WHERE TO_CHAR(rkrq,'yyyy')='2015'
    GROUP BY djxh
    ORDER BY COUNT(DISTINCT zsxm_dm) DESC
    )
  WHERE rownum =1
  )