查表的数据来拼接insert语句的写法

--实际拜访表
alter table sfa_t_tplaactualvisit add a_id int,a_remark varchar(10)

select * from sfa_t_tplaactualvisit where actualvisitid >= 14343

select * from sfa_t_tplaactualvisit where a_id is not null

--在60.11执行
select '
 insert into dbo.sfa_t_tplaactualvisit
 (
      [VisitPlanID]
      ,[usernumber]
      ,[UserName]
      ,[StoreID]
      ,[StoreName]
      ,[Visit_StartTime]
      ,[Visit_EndTime]
      ,[VisitContent]
      ,[LostReport]
      ,[VisitSummary]
      ,[ReachPhoto]
      ,[LatLng]
      ,[PositioningType]
      ,[SystemDate]
      ,[EndTime]
      ,[Guid]
      ,[leavephoto]
      ,[xinkehuxiaojie]
      ,[qiaotangxiaojie]
      ,[xinpinxiaojie]
      ,[duizhangxiaojie]
      ,[feiyongxiaojie]
      ,[otherxiaojie]
   ,a_remark
      ,[a_id]
 
 )
 values
 (
 '  
 +           
    ISNULL('''' + cast([VisitPlanID] as varchar) + ''',', 'null,') +
    ISNULL('''' + cast([usernumber] as varchar) + ''',', 'null,') +
    ISNULL('''' + cast([UserName] as varchar) + ''',', 'null,') +
    ISNULL('''' + cast([StoreID] as varchar) + ''',', 'null,') +
    ISNULL('''' + cast([StoreName] as varchar) + ''',', 'null,') +
    ISNULL('''' + cast([Visit_StartTime] as varchar)+ ''',', 'null,') +
    ISNULL('''' + cast([Visit_EndTime] as varchar)+ ''',', 'null,') +
    ISNULL('''' + cast([VisitContent] as varchar)+ ''',', 'null,') +
    ISNULL('''' + cast([LostReport] as varchar)+ ''',', 'null,') +
    ISNULL('''' + cast([VisitSummary] as varchar)+ ''',', 'null,') +
    ISNULL('''' + cast([ReachPhoto] as varchar(50))+ ''',', 'null,') +
             ISNULL('''' + cast([LatLng] as varchar)+ ''',', 'null,') +
             ISNULL('''' + cast([PositioningType] as varchar(300))+ ''',', 'null,') +
             ISNULL('''' + cast([SystemDate] as varchar)+ ''',', 'null,') +
             ISNULL('''' + cast([EndTime] as varchar)+ ''',', 'null,') +
       ISNULL('''' + cast([Guid] as nvarchar(50)) + ''',', 'null,') +
    ISNULL('''' + cast([leavephoto] as nvarchar(50)) + ''',', 'null,') +
    ISNULL('''' + cast([xinkehuxiaojie] as nvarchar(50)) + ''',', 'null,') +
             ISNULL('''' + cast([qiaotangxiaojie] as nvarchar(50)) + ''',', 'null,') +
             ISNULL('''' + cast([xinpinxiaojie] as nvarchar(50)) + ''',', 'null,') +
             ISNULL('''' + cast([duizhangxiaojie] as nvarchar(50)) + ''',', 'null,') +
             ISNULL('''' + cast([feiyongxiaojie] as nvarchar(50)) + ''',', 'null,') +
             ISNULL('''' + cast([otherxiaojie] as nvarchar(50)) + ''',', 'null,') +
    '''1'','+ 
    ISNULL('''' + cast(ActualVisitID as varchar)+ ''');', 'null);
 '
 ) as xxx
 from xw_dl_1007724.dbo.sfa_t_tplaactualvisit where ActualVisitID >= 14343


 --根据guid更新实际拜访表storeid
with a as
(
select t1.ActualVisitID,t2.guid,t2.storeid from sfa_t_tplaactualvisit t1
left join sfa_t_tbasstore t2 on t1.guid = t2.guid
where t1.a_id is not null and t1.storeid != t2.Storeid
)
update sfa_t_tplaactualvisit set storeid = a.storeid from a
where a.ActualVisitID = sfa_t_tplaactualvisit.ActualVisitID

 

 --是否存在重复的数据 visitplanid,usernumber,guid
 select visitplanid,usernumber,guid from sfa_t_tplaactualvisit
 where visitplanid is not null
 group by  visitplanid,usernumber,guid  having count(*)>1


 --存在重复的数据即做处理
 select * from sfa_t_tplaactualvisit t1 inner join
 (
  select visitplanid,usernumber,guid from sfa_t_tplaactualvisit
  where visitplanid is not null
  group by  visitplanid,usernumber,guid  having count(*)>1
 )
 t2 on t1.visitplanid = t2.visitplanid and t1.usernumber = t2.usernumber and t1.guid = t2.guid

 

 --有重复即删除
delete from sfa_t_tplaactualvisit where ActualVisitID in
(
  select t1.ActualVisitID from sfa_t_tplaactualvisit t1 inner join
  (
    select visitplanid,usernumber,guid from sfa_t_tplaactualvisit
       where visitplanid is not null
       group by  visitplanid,usernumber,guid  having count(*)>1
  ) t2 on t1.visitplanid = t2.visitplanid and t1.usernumber = t2.usernumber and t1.guid = t2.guid
  where a_id is not null
)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值