sql 看需求

残月照我心 2014-04-17 03:35:01
环境:
1.程序段:把未处理的数据批量导入临时表
2.sql:处理临时表数据

需求:符合地址规则的,执行更新操作,
不符合的执行插入操作,插入的时候生成个人编号,
当个人编号超过(0000 001--9999 999 )9999 999
则2014加1变成2015(也就是:2015+区号+这个区号对应的最大ID数),其它不变

表结构:

个人编码(格式:2014+区号+这个区号对应的最大ID数 2014+区号+0000 001) PersonalNum
姓名 UserName (姓名不唯一)
性别 UserSex
地址 Address
(地址是唯一的,一种是姓名相同 地址完全一样
二种是姓名相同 地址里面的数字一样
)
邮编 PostCode
区 Area
电话 Phone --需要补全(原有数据为空才处理)
手机 MobilePhone --需要补全(原有数据为空才处理)
楼盘名称 ProjectName
户型 HouseType
汽车品牌 CarType
车价 CarPrice
车牌 CarNum
消费等级 ConsumeLevel
消费倾向 ConsumeLike
机构名称 OrganizationName
会所名称 ClubName --需要补全(原有数据为空才处理)
人群属性 CrowdType --需要补全(原有数据缺少的补全,格式:车主,楼盘业主,企业老板,高端人群,高尔夫会员)

区名 区号
白云区 01
从化区 02
番禺区 03
海珠区 04
花都区 05
黄埔区 06
荔湾区 07
萝岗区 08
南沙区 09
天河区 10
越秀区 11
增城区 12
...全文
218 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
残月照我心 2014-04-22
  • 打赏
  • 举报
回复
查了下有这种写法 有没有比这个更好的?
select MAX(PersonalNum) from Car_Owners where SUBSTRING(PersonalNum,5,2)='01'
残月照我心 2014-04-22
  • 打赏
  • 举报
回复
请教一个问题: 白云区 01 从化区 02 番禺区 03 海珠区 04 花都区 05 黄埔区 06 荔湾区 07 萝岗区 08 南沙区 09 天河区 10 越秀区 11 增城区 12 如何才能获取各区域最大ID数: 例如:白云区2个ID数:2014010000001 2014010000002 从化区2个ID数:2014020000001 2014020000002 也就是说白云区最大ID数是:2014010000002 (01) 从化区最大ID数是:2014020000002 (02) 区别在区号这里
exception92 2014-04-22
  • 打赏
  • 举报
回复
PersonalNum 创建索引不更好??
renliquan 2014-04-20
  • 打赏
  • 举报
回复
问题描述太复杂,简化一点,没有看得懂。
残月照我心 2014-04-18
  • 打赏
  • 举报
回复
残月照我心 2014-04-17
  • 打赏
  • 举报
回复
这个难点只要在于个人编号的生产和地址的唯一 详细补充如下: 假设越秀区最大ID数是:0000001 那么再次插入一条越秀区的数据,则 个人编号: PersonalNum 2014110000002---> 2014+11(区号:11代表的是越秀区)+(0000001+1)(越秀区对应的最大id数+1) 地址唯一:,第一种是姓名相同 地址完全一样 (小王,广州市东山区先烈中路81号大院19号)也就是完全匹配 第二种是姓名相同 地址里面的数字一样(小王,广州东山先烈中81号大院19) 数字匹配 第一种和第二种列举的地址(数字匹配规则也就是说(81 19这样子的算相同))算是相同的 还有不明白的可以说下
残月照我心 2014-04-17
  • 打赏
  • 举报
回复
t101lian 2014-04-17
  • 打赏
  • 举报
回复
没看明白。。。

34,590

社区成员

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

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