问题描述:
有A、B两表,其中
A表
单位 所在地区 (列名)
万向集团 浙江
胜利油田 山东
燕山石化 天津
上海宝钢 上海
B表
单位 时间 (列名)
华为集团 2011
万向集团 1999
胜利油田 2003
上海宝钢 2005
——————————————————————————————————————
现在要实现对A.单位、B.单位两列的对比,最终输出这两列中元素相同的行,并形成中间表C。
C表如下:
单位 所在地区 时间 (列名)
万向集团 浙江 1999
胜利油田 山东 2003
上海宝钢 上海 2005
怎么实现?
(扩充本题)
——————————————————————
A表为:{单位列不是全称,缺少某些文字}
单位 所在地区 (列名)
万向集 浙江
胜利油 山东
燕山石 天津
上海宝 上海
B表不变,即:
B表
单位 时间 (列名)
华为集团 2011
万向集团 1999
胜利油田 2003
上海宝钢 2005
现筛选A.单位和B.单位,若"%A.单位%"与B.单位某行相同则输出B表该行与A表该行,最终形成如下的中间表C。
单位A 单位B 所在地区 时间 (列名)
万向集 万向集团 浙江 1999
胜利油 胜利油田 山东 2003
上海宝 上海宝钢 上海 2005
附带一个问题
现在有A表“科目”这一列,内容是这样的:
科目(列名)
万里线缆厂0005830仓库(2005.03)
张三等9户000330私宅(2001.02)
联想专卖店1005830店铺(2009.5)
现要拆分为3列:
单位 编号 时间
万里线缆厂-仓库 0005830 2005.03
张三等9户-私宅 000330 2001.02
联想专卖-店铺 1005830 2009.5
难点在于单位一列里面有数字、编号长度不固定、时间会有0X月和X月两种格式。
另补加2分~
select dbo.fnSplitString(A.科目,1) as [单位],dbo.fnSplitString(A.科目,2) as [编号], dbo.fnSplitString(A.科目,3) as [时间] from A表
go
--针对你的问题写了个返回字符串的函数:fnSplitString
--参数:source是要拆分字符串, index是返回第几列
fnSplitString函数具体是怎样的?
呵呵,可以把解决问题的整个完整的语句发上来么?