您的位置:首页 > 数据库

自己写的sql语句

2009-04-03 15:09 239 查看
今天通过同事的帮助,终于在工作中将sql语句排上了用场,一个直接用sql语句可以发现原来发现不了的问题,一个可以极大的提高工作效率。一举两的的事情当然要总结下,以免遗忘。

(1)minus

select sum(NVL(x1.lx_pt_xs, 0) + NVL(x1.lx_cr_xs, 0) + NVL(x1.lx_zy_xs, 0) +
NVL(x1.lx_jg_xs, 0)) sum,
x1.xxid
from xx_jb1 x1
where bgnf = '2009'
and bgyf = '3'
group by xxid
minus
select x2.hj, x2.xxid
from xx_jb2 x2
where bgnf = '2009'
and bgyf = '3'


(2)sum,decode

select sum(decode(st.census_register_character, null, 1, '', 1, 0)),
sum(decode(st.school_type, null, 1, '', 1, 0)),
sum(decode(st.clazz, null, 1, '', 1, 0)),
sum(decode(st.enrolltype, null, 1, '', 1, 0)),
sum(decode(st.province, null, 1, '', 1, 0)),
st.school_id
from mvs_b_student st, v_all_school_dq v
where v.sid = st.school_id
group by st.school_id


(3)delete

delete from mvs_b_graduate where id in
(
select g.id
from mvs_b_school         sc,
mvs_b_graduate       g,
mvs_b_student        st,
mvs_b_organise_frame o

where st.id = g.xsid
and sc.organiseframeid = o.id
and st.id = g.xsid
and st.school_id = sc.id
and o.code = 'lhb'
)


(4)关联查询:

--通过组织机构代码找学校
select * from mvs_b_school sc,mvs_b_organise_frame o
where o.id=47681
and sc.organiseframeid=o.id


--通过学校的机构代码查找学生
select count(*)
from mvs_b_student        st,
mvs_b_school         sc,
mvs_b_organise_frame o
where o.code = 'd2'
and sc.organiseframeid = o.id
and sc.id = st.school_id


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql null character 工作