要显示这样的数据怎么设置数据结构更趋于合理?
××盆地分层数据
组名 代号 好1井(合并)好2井(同左) 好3井 好4井 ……
(合并) (合并) 深度 厚度 深度 厚度 深度 厚度 深度 厚度 ……
×1组 c1 100 90 200 195 150 140 120 108 ……
×2组 c2 150 50 280 80 200 50 300 180 ……
×3组 c3 300 150 400 120 300 100 350 50 ……
……
盆地不同组名的个数不同,即:不同的盆地具有不同的行数,组名的顺序不能变
可以分页显示数据,如每页只显示5口井的数据,相同盆地显示的组名相同
------解决方案--------------------顶
------解决方案--------------------看不太明白。所以没法给个更好的答案
但大致上同意第3组,
数据库里只要数据全面,尽量少冗余就好了。
所谓的显示,其实只是前台实现。数据库里数据啥样子无所谓。
也可以适当的增加一个表或者字段,来存放组。。和具体的对应关系。。
我是在看不太明白。嘿~
------解决方案--------------------这总逻辑关系,只能自己来解决,大家只可以给你提供点方案.
LZ 加油
------解决方案--------------------以井为最小单元
然后分表
------解决方案--------------------没经验 只能帮顶
------解决方案--------------------不太能够理解,不过我觉得最好是分表设计。
盆地基础表;井的基础表;他们的对应表;
这样的话你说的问题就可以解决,而且没有你设计的弊端,增加一个盆地不需要增加一张表的
------解决方案--------------------井的序号不变只需要在井的表里面增加一个顺序字段就可以了
------解决方案--------------------这个应该是叫交叉表查询,
以前我的例子
Create table cost_table (日期 datetime,交费类别 char(2), 金额
numeric(10,2))
insert into cost_table select '2003-1-1 ', 'S ',23.4
union all select '2003-2-3 ', 'P ',43
union all select '2003-5-1 ', 'T ',23
go
declare @sql varchar(8000)
select @sql= 'select M as 月份 '
select @sql=@sql+ ',sum(case 交费类别 when ' ' '+交费类别+ ' ' ' then 金额 else 0
end) as [ '+ 交费类别+ '费] '
from (select distinct 交费类别 from cost_table) as a
select @sql=@sql + ' from
(select 1 as m
union all select 2
union all select 3
union all select 4
union all select 5
union all select 6
union all select 7
union all select 8
union all select 9
union all select 10
union all select 11
union all select 12
) A left join cost_table B
on A.m=month(日期)
and year(日期)=2003
group by A.M '
exec (@sql)
go