我在数据库表中的记录存放结构如下:
type Description COLOR SIZE Qty
G3020C Bg Comp Glove Red L 288
G3020A Bg Comp Glove Blk L 288
G3022C Bg Spt Glove BLU M 144
G3022C Bg Spt Glove BLU L 144
G3022D Bg Sport Glove RED M 144
G3022D Bg Sport Glove RED L 144
G3022E Bg Spt Glove BLK S 72
G3022E Bg Spt Glove BLK M 144
G3022E Bg Spt Glove BLK L 144现在用户要求我将数据安以下格式显示在DBGRID中:
type Description COLOR S M L
G3020C Bg Comp Glove Red 288
G3020A Bg Comp Glove Blk 288
G3022C Bg Spt Glove BLU 144 144
G3022D Bg Sport Glove RED 144 144
G3022E Bg Spt Glove BLK 72 144 144
这里只是部分数据,数据库表中SIZE的值不止这3个.
用户有意思就是将数据库中的isze的唯一值作为列,将QTY的值显示在对应SIZE值对就有列下.
不知道大家是否能看明白.肯请各位大侠帮忙看如何通过QUERY来实现.
type Description COLOR SIZE Qty
G3020C Bg Comp Glove Red L 288
G3020A Bg Comp Glove Blk L 288
G3022C Bg Spt Glove BLU M 144
G3022C Bg Spt Glove BLU L 144
G3022D Bg Sport Glove RED M 144
G3022D Bg Sport Glove RED L 144
G3022E Bg Spt Glove BLK S 72
G3022E Bg Spt Glove BLK M 144
G3022E Bg Spt Glove BLK L 144现在用户要求我将数据安以下格式显示在DBGRID中:
type Description COLOR S M L
G3020C Bg Comp Glove Red 288
G3020A Bg Comp Glove Blk 288
G3022C Bg Spt Glove BLU 144 144
G3022D Bg Sport Glove RED 144 144
G3022E Bg Spt Glove BLK 72 144 144
这里只是部分数据,数据库表中SIZE的值不止这3个.
用户有意思就是将数据库中的isze的唯一值作为列,将QTY的值显示在对应SIZE值对就有列下.
不知道大家是否能看明白.肯请各位大侠帮忙看如何通过QUERY来实现.
解决方案 »
- 如何用delphi 制作 一个制作电子书的工具?给个思路.各位讨论一下,谢谢.
- ★☆★☆★☆★☆★☆简单的vacomm的COM操作问题,急!!!
- 简单代码帮忙看看
- delphi5编译出现错误:class timage not found,如何处理?
- 十万火急的问题!!!!!!!
- 比如打开google,在搜索框中按一下左键,会出现以前搜过的命令,这些资料是存在哪里的?
- 如何实现想数据库中添加新纪录?
- 每天面对电脑时间太长,会不会容易导致口腔溃疡,你每天面对电脑工作多少小时?
- 用CoolTrayIcon如何显示CPU使用率
- 今天CSDN怎么搞的,不能结账,总是说我不能给自己加分,可我根本没有给自己加分?
- Crystal Report(水晶报表)的问题?
- 一串口通讯程序在WIN98及WINME下工作正常,但WIN2K和XP下不行
Create table test (name char(10),km char(10),cj int)
go
insert test values('张三','语文',80)
insert test values('张三','数学',86)
insert test values('张三','英语',75)
insert test values('李四','语文',78)
insert test values('李四','数学',85)
insert test values('李四','英语',78)SELECT * FROM Testdeclare @sql varchar(8000)
set @sql = 'select name'
select @sql = @sql + ',sum(case km when '''+km+''' then cj end) ['+km+']' from (select distinct km from test) as a
select @sql = @sql+' from test group by name'
exec(@sql)
第一步:
insert into newtable(type ,Description,COLOR)
select (type,Description,COLOR) from oldtable group by type, Description,COLOR第二步:
update newtable set s =
(select qty from oldtable a,newtable b
where (a.type = b.type and
a.description = b.description and
a.color = b.color and
a.size = 's'))第三步:
update newtable set M =
(select qty from oldtable a,newtable b
where (a.type = b.type and
a.description = b.description and
a.color = b.color and
a.size = 'M'))第四步:
update newtable set L =
(select qty from oldtable a,newtable b
where (a.type = b.type and
a.description = b.description and
a.color = b.color and
a.size = 'L'))
现在有一个问题就是我的原表oldtable中的SIZE的值有多少个是不确定的.
我的数据库是Access好象不能用存贮过程吧!