表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数据库

解决方案 »

  1.   


    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.登记时间
      

  2.   


    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.登记时间)
      

  3.   

    select 地区名,城市名,人数=count(*),登记时间
    from 表A a,表B b,表C c
    where a.地区Id=b.街区Id and b.城市Id=c.城市Id
    group by 地区名,城市名,登记时间
      

  4.   

    select 
     地区名,城市名,count(1) as 人数,登记时间
    from 表A a,表B b,表C c
    where
     a.地区Id=b.街区Id and b.城市Id=c.城市Id
    group by
     地区名,城市名,登记时间
      

  5.   


    COUNT(1)是什么意思啊?
      

  6.   

    count(1)等同於count(*)
    取記錄count(任何值)等同於count(*) --null值除外
      

  7.   

    如果我的表A是:
    表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
      

  8.   

    登记时间 --為datetime時用year
    只取年份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.登记时间 )
      

  9.   


    打个。这个year方法好像只对最后显示数据有影响,截取年份,但是对group by没有用啊!只要月日不同还是分两个组,
      

  10.   


    有用的.用year 取出日期的年,你不就是要按年来分组嘛.月和日已经去掉了.