请教个“数据填充”之类的问题……

某鸟 2007-01-08 08:28:02
比如一批居民信息,
姓名:××× 楼号:×× 楼层:× 单元:×× ×××室

如何得到如下结果:
按照楼号,楼层、单元、门牌等排序列出所有居民信息,如缺少某户信息,
则填充个空记录……

如:
姓名××× 楼号:22 楼层:1 单元:1 101
姓名××× 楼号:22 楼层:1 单元:1 102
姓名××× 楼号:22 楼层:1 单元:1 103
姓名... 楼号:22 楼层:2 单元:1 201(无此记录,自动填充空记录或显示为空结果行)
姓名××× 楼号:22 楼层:2 单元:1 202
姓名××× 楼号:22 楼层:2 单元:1 203
姓名××× 楼号:22 楼层:3 单元:1 301
姓名××× 楼号:22 楼层:3 单元:1 302
姓名××× 楼号:22 楼层:3 单元:1 303
...全文
150 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
某鸟 2007-01-08
  • 打赏
  • 举报
回复
xiequanqin(XQQ) :
我这的房间信息是和居民信息在一起的……就是说在一个表里……汗!
因此缺少居民信息就是缺少房间信息……

所以目前看来只能用marco08(天道酬勤) 的方法……
偶知道了,多谢各位,以为能直接用简单一句sql实现呢……
某鸟 2007-01-08
  • 打赏
  • 举报
回复
啊?!你的意思莫非是让我用sql等方法手工建立个类似临时表之类的结果集?
顺序填入住宅位置完整的信息?然后再跟已有的信息关联?
某鸟 2007-01-08
  • 打赏
  • 举报
回复
rookie_one你误会了我的意思……其实信息表里根本就没那个记录哇,如何isnull……

marco08(天道酬勤) 你说的我知道,可我要问的就是……你所谓的:
如何“生成一个楼层单元信息结果表”……
就是说,我不知道如何从这个信息表里查出缺少哪些户的信息……
xiequanqin 2007-01-08
  • 打赏
  • 举报
回复
如果有完整的 楼号、楼层、单元 的对照表,简单,Left JOIN 就可以

如果没有,能不能用以下这些规则来判断:
1、楼号(1、2、3。。。n)、楼层(1、2。。F)、单元(101、102、...F01、F02、F0X) 都是连续的?
2、如果不连续,能不能如下判断:
a.只需要补充 出现过的楼号、楼层;
b.同一座楼,不同层房间数一样?
如果可以的话,那么,可以根据每座楼中出现过的房间号(不包含楼层号),来关联出所有楼层的房间
rookie_one 2007-01-08
  • 打赏
  • 举报
回复
select isnull(姓名,''),
case when 姓名='' then '' else 楼号 end,
case when 姓名='' then '' else 楼层 end,
case when 姓名='' then '' else 单元 end
from tablename
order by 楼号,楼层,单元,门牌
marco08 2007-01-08
  • 打赏
  • 举报
回复
--try


select B.姓名, A.* from
(
select 楼号=22, 楼层=1, 单元='1 101'
union all select 22, 1, '1 102'
)as A
left join 居民信息表 as B on A.楼号=B.楼号 and A.楼层=B.楼层 and A.单元=C.单元

--先生成一个楼层单元信息结果表,再左关联居民信息表
rookie_one 2007-01-08
  • 打赏
  • 举报
回复
select isnull(姓名,''),
case 楼号 when 姓名='' then '' else 楼号 end,
case 楼层 when 姓名='' then '' else 楼层 end,
case 单元 when 姓名='' then '' else 单元 end
from tablename
order by 楼号,楼层,单元,门牌

34,575

社区成员

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

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