编号 颜色号 形式 颜色
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 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 兰 红 黑 黑 兰
这个要什么做。
解决方案 »
- delphi 的抽象方法
- delphi html编辑器 内嵌图片发送问题。
- 不夜人——文档随意管理1.0 你学习编程的帮手
- 关于类型定义错误提示
- 请教各位大侠,能否介绍一下delphi是如何组织sql语句的,比如说程序中调用ttable.delete,delphi会组织一条delete语句.
- 版主和高手们来看看。分不成问题。是一个奇怪的地址错误。
- 请问 TImage Transparent 的实现原理
- 如何在互联网中的两个机器之间用xml进行数据交换??请高人指点.
- 100分求教界面问题?
- 公司为规范管理,决定将所有机器名全设定好后不允许更改。哪位知道有什么办法可以实现嘛?(Win98)
- 恍惚了一宿
- 大虾们,怎样把DBgrid控件中查询出的结果集导成Excel格式的,用什麽控件,最好有例子
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 颜色号
http://community.csdn.net/Expert/topic/2767/2767759.xml?temp=.5181238
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
把里面的内容复制到查询分析器中然后执行
2、依次读出(形式.value),加入grid.columns
3、同时根据(形式.value)加入(颜色.value)
比如我加:1 A 织带 白
这样你这个程序不就不可以了
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