表Person是人员分布图,含以下字段id,jzdxzqh(所在地代码),lkyjsj(离开原户籍地时间)
表code是地区代码表cd_id(地区代码),cd_name(地区名称)所有字段全部为varchar类型 Person
id jzdxzqh lkyjsj
1 100021 20090825
2 100245 20090906
3 100356 20100106
.
.
.
code
cd_id cd_name
100021 湖南
100245 广东
100356 江西
.
.
.
现要求按照地区,按离开原籍的月份统计每个地区有多少人得到下面这样的一个结果:
200909 200910 200911 200912 201001 201002201009
湖南 100 120 130 150 122 111 174
广东 99 87 95 2465 545 4545 455
江西 145 412 545 145 456 455 485
select d.cd_name "省份",a.moon "月份","人数" from (select count (1) "人数", substr(jzdxzqh,1,6) code,substr(lkyjsj,1,6) moon
from person r
where r.rdj_sfzc='0' and r.rdj_sfyx='1'
and rdj_lkyjsj>'200909' and rdj_lkyjsj<'201010'
group by substr(jzdxzqh,1,6),substr(lkyjsj,1,6)) a,
base.code d where a.code||'000000'=d.cd_id
order by "省份" 这条语句满足不了上述要求 请求高手指教如何一条sql语句给出上述结果,有什么需求不明白的欢迎询问
表code是地区代码表cd_id(地区代码),cd_name(地区名称)所有字段全部为varchar类型 Person
id jzdxzqh lkyjsj
1 100021 20090825
2 100245 20090906
3 100356 20100106
.
.
.
code
cd_id cd_name
100021 湖南
100245 广东
100356 江西
.
.
.
现要求按照地区,按离开原籍的月份统计每个地区有多少人得到下面这样的一个结果:
200909 200910 200911 200912 201001 201002201009
湖南 100 120 130 150 122 111 174
广东 99 87 95 2465 545 4545 455
江西 145 412 545 145 456 455 485
select d.cd_name "省份",a.moon "月份","人数" from (select count (1) "人数", substr(jzdxzqh,1,6) code,substr(lkyjsj,1,6) moon
from person r
where r.rdj_sfzc='0' and r.rdj_sfyx='1'
and rdj_lkyjsj>'200909' and rdj_lkyjsj<'201010'
group by substr(jzdxzqh,1,6),substr(lkyjsj,1,6)) a,
base.code d where a.code||'000000'=d.cd_id
order by "省份" 这条语句满足不了上述要求 请求高手指教如何一条sql语句给出上述结果,有什么需求不明白的欢迎询问
http://topic.csdn.net/u/20100109/13/6a10c168-f190-4766-b838-adbf03c4ac7b.html?96906