一个简单的sql查询脚本

来源:互联网 发布:c语言中有几个关键字 编辑:程序博客网 时间:2024/05/29 12:12

经常要给客服的导数据,有时数据会很多,通过php来执行会非常的费时间,而且会影响网站
这个时候可以使用sql脚本来进行:
举个例子:查询用户领取的微信红包金额(没有时间限制,这个不是好习惯)
此处是先把相应的要查询的用户id写在了 for_local_test表中,包含字段为user_id,charge_money 都为int类型,因为目前项目中金额都是整数,没有带角和分的

declare @user_id int--用来处理结果的变量  DECLARE @charge_money DECIMALDECLARE @stime INTDECLARE @etime INTSET @stime = 1506787200set @etime = 1510847999 begin   --声明一个游标    Declare user_cur Cursor for     select    user_id from [MGUsers].[dbo].[for_local_test]  order by user_id desc ;---查询语句(查询所有用户)     --打开游标    Open user_cur     --循环并提取记录    Fetch Next From user_cur Into @user_id--取第一条记录存入@result中    While ( @@Fetch_Status=0 )             begin            --print @user_id---处理结果            --查询领取的红包          SELECT @charge_money = sum(amount_price)  FROM [MGCenter].[dbo].[recharge_order] WHERE user_id = @user_id  and pay_status =1 and ctime >= @stime and ctime <= @etime           if(@charge_money is null)            BEGIN             set @charge_money =0            END            UPDATE [MGUsers].[dbo].[for_local_test] set charge_money = @charge_money WHERE user_id = @user_id        --PRINT      @charge_money                   Fetch Next From user_cur into @user_id----下一条         end     --关闭游标        Close user_cur  --释放游标   Deallocate user_cur    end

执行完成后使用数据库的导出功能转成excal或者运营需要的格式,直接就完成了,有时候他们需要附加时间条件,直接在查询条件后面附加就可以了。

原创粉丝点击