已知表Table1有字段A,其值为1,2,3,4……,表Table2有字段B,其值为Table1的A的值之一,Table1字段A的值为可以增加到若干。求统计成如下结果的select语句:
1    2   3  4  ……  //代表Table1的A字段的值
4    2   4  3  ……  //代表Table2的B字段统计结果为:‘1’ 有4条记录,‘2’有2条记录,‘3’有4条记录,‘4’有3条记录 ……  Table2共有13条记录

解决方案 »

  1.   

    select A,Count(A) as '数量' from
    (select a.A,b.B from
      (select A from Table1)a
    right join
      (Select A,B from Table2 ) b
    on a.A=b.A) a
    group by A order by cast(A As integer)
      

  2.   

    这个要动态来创建SQL因为字段A的结果成为统计的字段出来了,楼上的应该不行
      

  3.   

    SELECT R.A,(SELECT COUNT(*) FROM TABLE2 WHERE R.A=B) B
    (SELECT DISTINCT A FROM TABLE1 ) R
      

  4.   

    declare @sql varchar(8000)
    set @sql = ''
    select @sql = @sql + ',sum(case 字段B when '''+cast(字段A as varchar(10))+''' then 1 else 0 end) ['+cast(字段A as varchar(10))+']'
      from (select 字段A from Table1) as aset @sql = 'select '+right(@sql,len(@sql)-1)+' from Table2'exec(@sql)
    go
      

  5.   

    我用的是delphi+access ,query1.sql.add('怎么写?')
      

  6.   

    access ???不行!access没有exec