zoukankan      html  css  js  c++  java
  • MS sql server和mysql中update多条数据的例子

    1.
    MS sql server中使用动态的表名:declare @tableName nvarchar(160)
    set @tableName = 't_stat_all'
    declare @sql nvarchar(160)
    print @tableName
    set @sql='select count(*) from '+@tableName
    exec(@sql)

    2.mysql的例子1
    语句update (select sc,tos,sum(click) as click,product,adpid from log_sc_click group by sc,tos,product,adpid) as a,
    t_stat_sc_h_tmp as b
    set b.sc_click=a.click
    where b.stat_date=str_date and b.hour=str_hour and b.sc=a.sc
    and b.tos=a.tos and b.product=a.product and a.adpid=b.adpid;

     
    3.mysql例子2
    update t_advertiser as a,
        (select uid,sum(amount) as amount from t_trade where status='1' and type='4' group by uid)as b
        set a.spend=(b.amount) ,a.balance=(a.totalAmount-b.amount)    #注意是逗号不是and
        where a.id=b.uid;

     

    4.
    SQL server存储过程完整例子

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go

    --ALTER procedure [dbo].[ad_stat]
    ALTER procedure [dbo].[ad_stat]
    @day varchar(20) = null

    as
    BEGIN try

    if(@day is null)
    set @day = convert(varchar(10),dateadd(day,-1,getdate()),121)

    declare @theDay datetime
    set @theDay = cast(@day as datetime)


    declare @yesterday varchar(10)
    set @yesterday = convert(varchar(10),@theDay,121)

    declare @tableName nvarchar(160)
    set @tableName = 'log_adlist_'+ left(@yesterday,4)+'_'+substring(@yesterday,6,2)+'_'+substring(@yesterday,9,2)

    declare @sql nvarchar(500)
    set @sql=' update t_stat_all '+
    ' set cl=b.click from '+
    ' ( '+
    ' select AllType as ad_id ,posid as posid,count(*) as click '+
    ' from '+@tableName+
    ' where datediff(d,VisitTime,'+@theDay+')=0'+
    ' group by AllType,posid '+
    ' ) b ,t_stat_all a '+
    ' where datediff(d,a.stat_date,'+@theDay+')=0 and a.posid=b.posid '+
    ' and a.ad_id=b.ad_id ';
    exec(@sql)


    END try
    begin catch
    INSERT INTO actionLogs
    ([createTime]
    ,[actionName]
    ,[type]
    ,[infor])
    VALUES
    (getdate(),
    'ad_stat',
    'error', --error,info
    ERROR_MESSAGE())
    end catch
  • 相关阅读:
    spring jdk动态代理
    java分页对象封装
    jQuery---ajxa
    创建ajax对象
    EL基础语法
    jsp语法
    servlet cookie session
    java 单例模式
    yapi 强大的api管理系统
    Orange--一个基于OpenResty / Nginx的HTTP API Gateway
  • 原文地址:https://www.cnblogs.com/pony/p/1348255.html
Copyright © 2011-2022 走看看