服装尺码颜色交叉报表问题

gjz_1209 2007-05-15 05:58:06
表中数据如下

sp cm yename qty
--- ------ ------- -----------------------
A 加大 红色 2.0000000000
A 加大 绿色 1.0000000000
A 大 绿色 3.0000000000
A 中号 蓝色 4.0000000000
A 小号 黄色 5.0000000000
A XL red 1.0000000000
A L blue 2.0000000000
A M yellow 6.0000000000


要求数据窗口一:
商品 颜色 尺码 数量
A 红色 加大 1
绿色 加大 1
绿色 大 1
蓝色 中号 1
黄色 小号 1
合计: 5
B red XL 1
blue L 2
yellow M 6
合计: 9

数据窗口二:

商品 尺码 分颜色数量 数量小计
A 红色 绿色 蓝色 黄色
加大 1 1 2
大 1 1
中号 1 1
小号 1 1
合计: 1 1 1 1 5
B red blue yellow
XL 1 1
L 2 2
M 6 6
合计: 1 2 6 9

如何在数据窗口中实现,包括SQL语句,显示类型及实现详解,第一题20分,第二题80分。




...全文
619 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
支持搂主,收藏
other_blue 2007-06-05
  • 打赏
  • 举报
回复
觉得第二个数据窗口用 交叉表不大可能做到
楼主的问题实际上,对应于不同的产品,COLUMN是不一样的
觉得还是手工画吧
enayo 2007-06-05
  • 打赏
  • 举报
回复
create table tb(sp varchar(10),cm varchar(10),yename varchar(10),qty decimal(18,4))
insert into tb
select 'A','加大','红色',2.0000 union all
select 'A','加大','绿色',1.0000 union all
select 'A','大', '绿色',3.0000 union all
select 'A','中号','蓝色',4.0000 union all
select 'A','小号','黄色',5.0000 union all
select 'B','XL', 'red',1.0000 union all
select 'B','L', 'blue',2.0000 union all
select 'B','M', 'yellow',6.0000
go
declare @sql varchar(8000),@sp varchar(10)
set @sp = 'A'

set @sql='';
select @sql=@sql+',sum(case yename when '''+yename+''' then qty else 0 end) as ['+yename+']' from (select distinct yename from tb where sp = @sp) a
set @sql='select sp,cm '+@sql+' from tb where sp = '+ '''' + @sp + ''''+ 'group by sp,cm'
exec(@sql)

drop table tb
doodle 2007-06-04
  • 打赏
  • 举报
回复
1 分组
建一分组数据窗口 按商品 颜色 尺码分组即可 格式自己调
2 crosstab
row:商品、尺码
column:颜色
value:数量

会出来很多合计栏和计算列 不需要的隐藏就可以
youngyey 2007-06-04
  • 打赏
  • 举报
回复
可以做到!
aichangfeng 2007-06-03
  • 打赏
  • 举报
回复
ding
sxg263 2007-05-19
  • 打赏
  • 举报
回复
mark
lzuyh 2007-05-17
  • 打赏
  • 举报
回复
UP
946 2007-05-17
  • 打赏
  • 举报
回复
我們的處理方法用GRID然後動態的修改相關值,的確相當復雜,不是一二句可以說清楚的
gjz_1209 2007-05-17
  • 打赏
  • 举报
回复
表中数据如下(更正)

sp cm yename qty
--- ------ ------- -----------------------
A 加大 红色 2.0000000000
A 加大 绿色 1.0000000000
A 大 绿色 3.0000000000
A 中号 蓝色 4.0000000000
A 小号 黄色 5.0000000000
B XL red 1.0000000000
B L blue 2.0000000000
B M yellow 6.0000000000
gjz_1209 2007-05-17
  • 打赏
  • 举报
回复
因为服装有它的特殊性,如服装的码色跟鞋的码色规则就不同,所以我的颜色和尺码没法统一,这就是本问题的难点,请高手出招。
952 2007-05-16
  • 打赏
  • 举报
回复
友情UP
AFIC 2007-05-16
  • 打赏
  • 举报
回复
新建dw,选group,最后选个sp即可

你要把颜色统一,不能又有红色又有red
然后坐crosstab
solumns->yename
rows->sp,cm
values->qty
就可以了
gjz_1209 2007-05-16
  • 打赏
  • 举报
回复
楼上说的详细些吧,我都试了,达不到效果的。
da21 2007-05-16
  • 打赏
  • 举报
回复
一、用group by
二、用交叉报表

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧