经常要给客服的导数据,有时数据会很多,通过php来执行会非常的费时间,而且会影响网站
这个时候可以使用sql脚本来进行:
举个例子:查询用户领取的微信红包金额(没有时间限制,这个不是好习惯)
此处是先把相应的要查询的用户id写在了 for_local_test表中,包含字段为user_id,charge_money 都为int类型,因为目前项目中金额都是整数,没有带角和分的
declare @user_id int--用来处理结果的变量
DECLARE @charge_money DECIMAL
DECLARE @stime INT
DECLARE @etime INT
SET @stime = 1506787200
set @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或者运营需要的格式,直接就完成了,有时候他们需要附加时间条件,直接在查询条件后面附加就可以了。