这样的单据格式如何设计表结构?

tinderman 2003-11-10 10:15:25
_______________________________________________________
| 项目|农产品 |经济作物 |经济林木|其 他 |
|_____|____________|___________|________|______________|
| |A |B |C |D |E |G |H |
| 地区|____|___|___| | | | |
| | |I |J| | | | | | |
|___V_|__|_|___|___|_____|_____|________|______________|
|_____|__|_|___|___|_____|_____|________|______________|
|_____|__|_|___|___|_____|_____|________|______________|

如图所示:项目分类不同,层次也不同,横向分为项目,纵向为地区。即分地区记录各项目的数量,打印报表也要打出这样的格式,如何设计表结构呢?
...全文
211 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
txlicenhe 2003-11-11
  • 打赏
  • 举报
回复
SQL只是数据库,不可能象前台工具一样可以随心所欲地打印报表。
pengdali 2003-11-10
  • 打赏
  • 举报
回复
create table 项目类别表(编号 varchar(50),名称 varchar(50))
insert 项目类别表 values('001','农产品')
insert 项目类别表 values('001001','农产品A类')
insert 项目类别表 values('001002','农产品B类')
insert 项目类别表 values('001001001','农产品A类i小类')
insert 项目类别表 values('001001002','农产品A类j小类')

create table 你的表(地区 varchar(100),项目类编号 varchar(50),数量 int)
insert 你的表 values('地区1','001001001',50)
insert 你的表 values('地区1','001001002',100)
insert 你的表 values('地区1','001002',50)
go

--使用:
declare @sql varchar(8000)
set @sql = 'select 地区'
select @sql = @sql + ',sum(case 项目类编号 when '''+编号+''' then 数量 else 0 end) ['+名称+']'
from (select * from 项目类别表 where 编号 in (select 项目类编号 from 你的表)) as a
select @sql = @sql+' from 你的表 group by 地区'

exec(@sql)
go
pengdali 2003-11-10
  • 打赏
  • 举报
回复
create table 项目类别表(编号 varchar(50),名称 varchar(50))
insert 项目类别表 values('001','农产品')
insert 项目类别表 values('001001','农产品A类')
insert 项目类别表 values('001002','农产品B类')
insert 项目类别表 values('001001001','农产品A类i小类')
insert 项目类别表 values('001001002','农产品A类j小类')

create table 你的表(地区 varchar(100),项目类编号 varchar(50),数量 int)
insert 你的表 values('地区1','001001001',50)
insert 你的表 values('地区1','001001002',100)
insert 你的表 values('地区1','001002',50)
go

--使用:
declare @sql varchar(8000)
set @sql = 'select 地区'
select @sql = @sql + ',sum(case 项目类编号 when '''+编号+''' then 数量 else 0 end) ['+名称+']'
from (select * from 项目类别表 where 编号 in (select 项目类编号 from 你的表)) as a
select @sql = @sql+' from 你的表 group by 地区'

exec(@sql)
go

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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