SQL 实现,如果存在就更新,如果不存在就添加
2014-06-30 17:07
309 查看
alter proc proc_DataSummary as begin begin try begin tran --PV --统计的信息存入临时表 select SharedUserID,PlatformID,CONVERT(varchar(100), CreateDate, 111) as CreatDate,ChannelID,SharedManagerID,COUNT(*) as Qty into #PVData from dbo.PVInfo where SharedLevel=1 group by SharedUserID,PlatformID,ChannelID,SharedManagerID,CONVERT(varchar(100), CreateDate, 111) --更新将统计己存在的信息 update dbo.DataSummary set PV=dbo.#PVData.Qty from #PVData where dbo.DataSummary.UserID=dbo.#PVData.SharedUserID and dbo.DataSummary.PlatformID=dbo.#PVData.PlatformID and dbo.DataSummary.ChannelID=dbo.#PVData.ChannelID and dbo.DataSummary.ManagerID=dbo.#PVData.SharedManagerID and dbo.DataSummary.SummaryDate=dbo.#PVData.CreatDate --统计新的PV信息 insert into dbo.DataSummary select SharedUserID,PlatformID,CreatDate,ChannelID,SharedManagerID,Qty,0,0,0,0,0,0,GETDATE() from dbo.#PVData a where not exists(select * from dbo.DataSummary where dbo.DataSummary.UserID=a.SharedUserID and dbo.DataSummary.PlatformID=a.PlatformID and dbo.DataSummary.ChannelID=a.ChannelID and dbo.DataSummary.ManagerID=a.SharedManagerID and dbo.DataSummary.SummaryDate=a.CreatDate ) --UV --统计的信息存入临时表 select SharedUserID,PlatformID,CONVERT(varchar(100), CreateDate, 111) as CreatDate,ChannelID,SharedManagerID,COUNT(*) as Qty into #UVData from dbo.UVInfo where SharedLevel=1 group by SharedUserID,PlatformID,ChannelID,SharedManagerID,CONVERT(varchar(100), CreateDate, 111) --更新将统计己存在的信息 update dbo.DataSummary set UV=dbo.#UVData.Qty from #UVData where dbo.DataSummary.UserID=dbo.#UVData.SharedUserID and dbo.DataSummary.PlatformID=dbo.#UVData.PlatformID and dbo.DataSummary.ChannelID=dbo.#UVData.ChannelID and dbo.DataSummary.ManagerID=dbo.#UVData.SharedManagerID and dbo.DataSummary.SummaryDate=dbo.#UVData.CreatDate --统计新的UV信息 insert into dbo.DataSummary select SharedUserID,PlatformID,CreatDate,ChannelID,SharedManagerID,Qty,0,0,0,0,0,0,GETDATE() from dbo.#UVData a where not exists(select * from dbo.DataSummary where dbo.DataSummary.UserID=a.SharedUserID and dbo.DataSummary.PlatformID=a.PlatformID and dbo.DataSummary.ChannelID=a.ChannelID and dbo.DataSummary.ManagerID=a.SharedManagerID and dbo.DataSummary.SummaryDate=a.CreatDate ) commit tran end try begin catch rollback tran end catch end
SQL 如果存在就更新,如果不存在就添加,使用 Merge 函数(SQL2008版本及以上)
相关文章推荐
- SQL 如果存在就更新,如果不存在就添加,使用 Merge 函数(SQL2008版本及以上)
- mybatis+oracle添加数据时如果数据存在就更新,如果不存在就插入
- oracle mybatis(Mergr into语句带序列)添加数据时如果数据存在就更新,如果不存在就插入
- 原生js实现增加(addclass),删除(removeclass),判断是否存在(hasclass),如果存在删除,如果不存在添加(toggleclass)和获取类名(getbyclass)的方法
- sqlite sql语句实现记录存在则修改、不存在则添加
- MySQL 如何实现插入时如果不存在则插入,如果存在则更新的操作?
- mysql如何实现插入时如果不存在则插入如果存在则更新的操作?
- mybatise+oracle添加数据时如果数据存在就更新,如果不存在就插入
- SQL语句实现两张表之间不存在则插入,存在则更新
- mysql如何用一条sql语句实现不存在就插入,存在的话则更新
- sqlalchemy 更新column,如果存在则更新,如果不存在,则添加新记录
- mysql_mybatis添加数据时如果数据存在就更新,如果不存在就插入
- Mysql 存在既更新,不存在就添加(sql语句)
- mysql如何实现插入数据时如果不存在则插入如果存在则更新的操作
- 如何实现插入时如果不存在则插入如果存在则更新的操作(分别用oracle、MySQL和SQL Server实现)
- sql存在该记录就更新,不存在就插入
- SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)
- MYSQL 数据表中行存在时更新,不存在时插入的SQL语句
- (转载)mysql 存在该记录则更新,不存在则插入记录的sql
- 通过文件锁实现,程序开始运行时,先判断文件是否存在,若存在则表明该程序已经在运行了,如果不存在就用open函数创建该文件,程序退出时关闭文件并删除文件。