编号 颜色号 形式 颜色
1 A 主1 黑
1 A 主2 黑
1 A 内 黑
1 A 网 兰
1 B 主1 兰
1 B 主2 红
1 B 内 黑
1 B 网 黑
1 B 拉 兰
上面是一张表。我要在dbgrid里显示如下格式:
颜色号 主1 主2 内 网 拉
A 黑 黑 黑 兰
B 兰 红 黑 黑 兰
这个要什么做。

解决方案 »

  1.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=9755
      

  2.   

    SELECT 颜色号,
          SUM(CASE 形式 WHEN '主1' THEN 颜色 ELSE 0 END) AS '主1', 
          SUM(CASE 形式 WHEN '主2' THEN 颜色 ELSE 0 END) AS '主2', 
          SUM(CASE 形式 WHEN '内' THEN 颜色 ELSE 0 END) AS '内', 
          SUM(CASE 形式 WHEN '网' THEN 颜色 ELSE 0 END) AS '网', 
          SUM(CASE 形式 WHEN '拉' THEN 颜色 ELSE 0 END) As '拉'
    FROM [TableName]
    GROUP BY 颜色号
      

  3.   

    行转列
    http://community.csdn.net/Expert/topic/2767/2767759.xml?temp=.5181238
      

  4.   

    看来很难写!我只能用sql写!
      

  5.   


    create table table1
    (
    tID int, --编号
    ColorNum char(8),   --颜色号
    Type char(8), --形式
    Color  char(8) --颜色
    )GOinsert into table1(tID,ColorNum,Type,Color) values('1','A','主1','黑')
    insert into table1(tID,ColorNum,Type,Color) values('1','A','主2','黑')
    insert into table1(tID,ColorNum,Type,Color) values('1','A','内','黑')
    insert into table1(tID,ColorNum,Type,Color) values('1','A','网','兰')
    insert into table1(tID,ColorNum,Type,Color) values('1','B','主1','兰')
    insert into table1(tID,ColorNum,Type,Color) values('1','B','主2','红')
    insert into table1(tID,ColorNum,Type,Color) values('1','B','内','黑')
    insert into table1(tID,ColorNum,Type,Color) values('1','B','网','黑')
    insert into table1(tID,ColorNum,Type,Color) values('1','B','拉','兰')gocreate view main1_1
    as 
    select ColorNum ColorNum_1,Color Color_1
    from table1
    where Type='主1'gocreate view main2_2
    as 
    select ColorNum ColorNum_2,Color Color_2
    from table1
    where Type='主2'gocreate view Tin_3
    as 
    select ColorNum ColorNum_3,Color Color_3
    from table1
    where Type='内'gocreate view net_4
    as 
    select ColorNum ColorNum_4,Color Color_4
    from table1
    where Type='网'go
    create view pull_5
    as 
    select ColorNum ColorNum_5,Color Color_5
    from table1
    where Type='拉'
    goselect distinct ColorNum [颜色号],Color_1 [主1],Color_2 [主2],Color_3 [内],Color_4 [网],Color_5 [拉]
    from table1 LEFT JOIN main1_1 ON [ColorNum]=ColorNum_1 LEFT JOIN main2_2 ON [ColorNum]=ColorNum_2 LEFT JOIN Tin_3 ON [ColorNum]=ColorNum_3 LEFT JOIN net_4 ON [ColorNum]=ColorNum_4 LEFT JOIN pull_5 ON [ColorNum]=ColorNum_5
    drop view main1_1
    drop view main2_2
    drop view Tin_3
    drop view net_4
    drop view pull_5
    把里面的内容复制到查询分析器中然后执行
      

  6.   

    你可以试着导入adoquery,我也在试!
      

  7.   

    1、先分组(形式)列。
    2、依次读出(形式.value),加入grid.columns
    3、同时根据(形式.value)加入(颜色.value)
      

  8.   

    tsst(田sir) :你这样做好象只局限与上面那些,那如果我在上面再加一个记录你什么办:
    比如我加:1  A   织带   白 
    这样你这个程序不就不可以了
      

  9.   

    前边的insert 是可以使用查询的
      

  10.   

    什么查询,你能不能用delphi实现这种方法
      

  11.   

    不知道这样符不符合你的要求:declare @sql varchar(1000)set @sql=''
    select @sql=@sql+','+形式+
    '=case when 形式='''+形式+''' then 颜色 else '''' end' 
    from t1 group by 形式set @sql='select 颜色号'+@sql+' from t1 group by 颜色号,颜色,形式'
    print @sql
    exec(@sql)表名叫t1
      

  12.   

    建议到MS_SQL SERVER 版里,问一下zjcxc(邹建)
      

  13.   

    to : y31307(31307)"加入表的值方法" 这个要怎么做。