这种SQL如何编写

[复制链接]
查看11 | 回复7 | 2014-3-11 06:00:14 | 显示全部楼层 |阅读模式
如有一张表(QY_INFO)
字段及数据如下
idjgdm(机关代码)xzqh(行政区划代码) jgmc(机关名称)zcsj(注册时间)
1 1001
1
北京A公司 20010130
2 1001
北京A公司 20010230
3 1001
北京A公司 20010420
4 1001
北京A公司 20010722
5 1002
3
北京B公司 20010130
6 1002
北京B公司 20010230
。。。

。。
。。
如上图一样,每个机关单位(JGDM值是唯一)经常都会来注册机关信息,但是机关登记过XZQH(以后再登记就不会填写了),如何通过一条SQL实现以下数据。
idjgdm(机关代码)xzqh(行政区划代码) jgmc(机关名称)zcsj(注册时间)
1 1001
1
北京A公司 20010130
2 1001
1
北京A公司 20010230
3 1001
1
北京A公司 20010420
4 1001
1
北京A公司 20010722
5 1002
3
北京B公司 20010130
6 1002
3
北京B公司 20010230


回复

使用道具 举报

千问 | 2014-3-11 06:00:14 | 显示全部楼层
分析函数
例如:last_value(xzqh)over(partition by jgdm order by id)
回复

使用道具 举报

千问 | 2014-3-11 06:00:14 | 显示全部楼层
merge into吧
回复

使用道具 举报

千问 | 2014-3-11 06:00:14 | 显示全部楼层
xzqh每次都保存不是挺好嘛
回复

使用道具 举报

千问 | 2014-3-11 06:00:14 | 显示全部楼层
xzqh放在这张表就违反了规范设计,应该放在那张以jgdm为主键的表。
回复

使用道具 举报

千问 | 2014-3-11 06:00:14 | 显示全部楼层
你应该考虑视图来显示你所需要的表里的数据
而xzqh你需要单独放置一张表,然后再建一个表,将jgdm和xzqh关联起来
回复

使用道具 举报

千问 | 2014-3-11 06:00:14 | 显示全部楼层
jboracle1981 发表于 2013-3-18 21:42
分析函数
例如:last_value(xzqh)over(partition by jgdm order by id)

select id,last_value(xzqh)over(partition by jgdm order by id),jgdm,jgmc,zcsj from qy_info
这么应该实现不了啊?
回复

使用道具 举报

千问 | 2014-3-11 06:00:14 | 显示全部楼层
sr19830207 发表于 2013-3-19 20:51
select id,last_value(xzqh)over(partition by jgdm order by id),jgdm,jgmc,zcsj from qy_info
这么应该 ...

select id,last_value(xzqh IGNORE NULLS)over(partition by jgdm order BY ID),jgdm,jgmc,zcsj from t
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行