select c.class_id,c.class_name,c.class_table,tt.数量
from [table] c
join
(
select col,sum(数量) 数量 from class_table group by col
) tt on c.class_table=tt.col

解决方案 »

  1.   


    select c.class_id,c.class_name,c.class_table,tt.数量
    from [table] c
    join
    (
    select col,sum(数量) 数量 from class_table group by col --col为class_table里面的大米,酱油所在的列
    ) tt on c.class_table=tt.col
      

  2.   


    select 
    b.class_id ,
    b.class_name ,
    b.class_table ,
    select count(*) from class_table a where a.class_table = b.class_table as 数量
    from [table] b
    group by  b.class_table这样?
      

  3.   

    select c.class_id,c.class_name,c.class_table,(select sum(数量) 数量 from class_table where c.class_table=tt.col
     )tt.数量
    from [table] c
      

  4.   

    SELECT class_id,class_name,count(class_name) from class_table 
    group by class_name,class_id
      

  5.   


    select 
    b.class_id ,
    b.class_name ,
    b.class_table ,
    select count(*) from class_table a where a.class_table = b.class_table as 数量
    from [table] b
    group by  b.class_table,b.class_id,b.class_name
      

  6.   

    select class_id=identity(int,1,1),class_name,class_table,count(*) into tbb from tba group by class_name,class_table
      

  7.   

    select class_id=identity(int,1,1),class_name,class_table,count(*) as 数量 into tbb from tba group by class_name,class_table
      

  8.   


    declare @sql varchar(8000)
    select @sql=isnull(@sql+' union all ','')+'select '''+name+''' as name,count(1) as cnt from ['+name+']' from sysobjects where xtype='u' and name like '%table_%'
    insert into # exec(@sql)select 
      a.*,
      b.cnt as 数量
    from 
      [table] a
    left join 
      # b
    on 
      a.class_table=b.name
      

  9.   

    CREATE TABLE [table_大米](ID INT)
    INSERT [table_大米]
    SELECT 1CREATE TABLE TB([class_id] INT, [class_name] NVARCHAR(2), [class_table] NVARCHAR(8))
    INSERT TB 
    SELECT 1, N'大米', N'table_大米' UNION ALL 
    SELECT 2, N'酱油', N'table_酱油' UNION ALL 
    SELECT 3, N'醋', N'table_醋'SELECT *,rowcnt=isnull((select rowcnt from sysindexes where id=object_id([class_table])),0) FROM TB DROP TABLE TB,[table_大米]
    /*
    class_id    class_name class_table rowcnt
    ----------- ---------- ----------- --------------------
    1           大米         table_大米    1
    2           酱油         table_酱油    0
    3           醋          table_醋     0
    */
      

  10.   

    漏了一个建表语句create table #(name varchar(50),cnt int)declare @sql varchar(8000)
    select @sql=isnull(@sql+' union all ','')+'select '''+name+''' as name,count(1) as cnt from ['+name+']' from sysobjects where xtype='u' and name like '%table_%'
    insert into # exec(@sql)select 
      a.*,
      b.cnt as 数量
    from 
      [table] a
    left join 
      # b
    on 
      a.class_table=b.name
      

  11.   

    再看看:
    http://topic.csdn.net/u/20090428/12/c13a0ffa-d89f-476a-bdb9-af5abcc7b668.html
      

  12.   

    create table tba(class_id int,class_name nvarchar(10),class_table nvarchar(20))
    insert into tba select 1,'大米','table_大米' 
    insert into tba select 2,'酱油','table_酱油' 
    insert into tba select 3,'醋','table_醋' 
    insert into tba select 4,'大米','table_大米'
    insert into tba select 5,'醋','table_醋'
    go
    select class_id=identity(int,1,1),class_name,class_table,count(*) as cnt into tbb from tba group by class_name,class_table
    select * from tbb
    go
    drop table tba,tbb
    /*
    class_id    class_name class_table          cnt
    ----------- ---------- -------------------- -----------
    1           醋          table_醋              2
    2           大米         table_大米             2
    3           酱油         table_酱油             1
    */
      

  13.   

    楼主是想按表里同一列的200个字段从200个表里select是吧,我看懂了。
      

  14.   

    SELECT a.class_id, a.class_name, a.class_table b.SL as [数量] from [table] a join (select count(*) as SL from [class_table] group by class_name) b on a.class_name=b.class_name
      

  15.   


    这个sysindexes至少还得加个 indid in(0,1) 条件,否则有可能会返回多条记录
      

  16.   


    select class_id=identity(int,1,1),class_name,class_table,count(*) as 数量 into tbb from tba group by class_name,class_table
      

  17.   

    create table #tba(class_id int,class_name nvarchar(10),class_table nvarchar(20))
    insert into #tba select 1,'大米','table_大米' 
    insert into #tba select 2,'酱油','table_酱油' 
    insert into #tba select 3,'醋','table_醋' 
    insert into #tba select 4,'大米','table_大米'
    insert into #tba select 5,'醋','table_醋'select id=identity(int,1,1),class_name,class_table,count(class_table) cnt into # from #tba group by class_name,class_tableselect * from #id          class_name class_table          cnt
    ----------- ---------- -------------------- -----------
    1           醋          table_醋              2
    2           大米         table_大米             2
    3           酱油         table_酱油             1(3 行受影响)
    如果不是的
    请说清楚
    大家都不懂
    你语言在组织下
      

  18.   


    SELECT   a.class_name , a.class_table,b.num as 数量  FROM table a 
    left join (
    select 'table_大米' as table_name  count(1) as num from table_大米 
    union all
    select 'table_酱油' as table_name  count(1) as num from  table_酱油
    union all
    select 'table_醋 ' as table_name  count(1) as num from  table_醋 )b on a.class_table=b.table_name
      

  19.   

    首先楼主的意思就没有表达清楚,导致以上高手都只能猜着给你写。偶也估摸着楼主的意思写
    declare @s varchar(8000)
    set @s=''
    select @s='select * ,数量=(select count(*) from '+class_table+') union '
    from tbexec(@s)
    试试吧