表A
Id 姓名 地区Id 登记时间
1 张三 1 2011
2 李四 2 2011
3 王五 2 2011
4 赵六 3 2010
5 小明 3 2011
6 小王 4 2011
============================================
表B
街区Id 街区名 城市Id
1 西城区 1
2 浦东新区 2
3 福田区 3
4 裕华区 4
==============================================
表C
城市Id 城市名
1 北京市
2 上海市
3 深圳市
4 石家庄市
=============================================
期望查询结果
地区名 城市名 人数 等级时间
西城区 北京市 1 2011
浦东新区 上海市 2 2011
福田区 深圳市 1 2010
福田区 深圳市 1 2011
裕华区 石家庄市 1 2011
============================================
上面3个表和一个期望查询结果就是我的问题!求高人不惜赐我SQL语句把 !万分感谢~~
注:我用的是SQL2008数据库
Id 姓名 地区Id 登记时间
1 张三 1 2011
2 李四 2 2011
3 王五 2 2011
4 赵六 3 2010
5 小明 3 2011
6 小王 4 2011
============================================
表B
街区Id 街区名 城市Id
1 西城区 1
2 浦东新区 2
3 福田区 3
4 裕华区 4
==============================================
表C
城市Id 城市名
1 北京市
2 上海市
3 深圳市
4 石家庄市
=============================================
期望查询结果
地区名 城市名 人数 等级时间
西城区 北京市 1 2011
浦东新区 上海市 2 2011
福田区 深圳市 1 2010
福田区 深圳市 1 2011
裕华区 石家庄市 1 2011
============================================
上面3个表和一个期望查询结果就是我的问题!求高人不惜赐我SQL语句把 !万分感谢~~
注:我用的是SQL2008数据库
SELECT
b.街区名,c.城市名,COUNT(*) AS [人数],a.登记时间
FROM A
INNER JOIN B ON a.地区Id=b.街区Id
INNER JOIN C ON c.城市Id=b.城市Id
GROUP BY b.街区名,c.城市名,a.登记时间
select b.地区名,c.城市名,count(a.id) as 人数,year(a.登记时间) as 登记时间
from a join b on a.地区id = b.地区id
join c on b.城市id = c.城市id
group by b.地区名,c.城市名,year(a.登记时间)
from 表A a,表B b,表C c
where a.地区Id=b.街区Id and b.城市Id=c.城市Id
group by 地区名,城市名,登记时间
地区名,城市名,count(1) as 人数,登记时间
from 表A a,表B b,表C c
where
a.地区Id=b.街区Id and b.城市Id=c.城市Id
group by
地区名,城市名,登记时间
COUNT(1)是什么意思啊?
取記錄count(任何值)等同於count(*) --null值除外
表A
Id 姓名 地区Id 登记时间
1 张三 1 2011-1-2
2 李四 2 2011-2-3
3 王五 2 2011-4-5
4 赵六 3 2010-7-7
5 小明 3 2011-4-8
6 小王 4 2011-8-9那上面的SQL就不好使了!查出的结果按照时间一分组count(×)就没有用了!因为时间中月份可能也不同
就会变成:
地区名 城市名 人数 等级时间
西城区 北京市 1 2011
浦东新区 上海市 1 2011
浦东新区 上海市 1 2011
福田区 深圳市 1 2010
福田区 深圳市 1 2011
裕华区 石家庄市 1 2011
只取年份SELECT
b.街区名,c.城市名,COUNT(*) AS [人数],year(a.登记时间 ) as 登记时间
FROM A
INNER JOIN B ON a.地区Id=b.街区Id
INNER JOIN C ON c.城市Id=b.城市Id
GROUP BY b.街区名,c.城市名,year(a.登记时间 )
打个。这个year方法好像只对最后显示数据有影响,截取年份,但是对group by没有用啊!只要月日不同还是分两个组,
有用的.用year 取出日期的年,你不就是要按年来分组嘛.月和日已经去掉了.