mysql 查询昨日收益_根据月份查询用户的收入情况的存储过程

------------------------------------------------------------------------------

---说明:.根据月份查询用户的收入情况

---创建人:self

---创建时间:2019-04-17

------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[P_WillPayByMonth]

@month VARCHAR(7)

AS

BEGIN

/**创建临时表***/

if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#tmp') and type='U')

DROP TABLE #tmp

CREATE TABLE #tmp

(

id INT,

login_name VARCHAR(64),

yaoqingma_self VARCHAR(10),

yaoqingma VARCHAR(10),

effect_sum DECIMAL(8,2),

yongjin_sum DECIMAL(8,2),

[level] INT,

isLeader INT

)

DECLARE @yaoqingma_pid VARCHAR(64)

DECLARE c_DpCursor CURSOR

FOR

SELECT yaoqingma_self

FROM [dbo].sys_user

OPEN c_DpCursor

FETCH NEXT FROM c_DpCursor INTO @yaoqingma_pid

WHILE @@fetch_status = 0

BEGIN

-- SET @month='2019-04'

PRINT ( @yaoqingma_pid ) ;

WITH temp (id, login_name, [yaoqingma_self], [yaoqingma],effect_sum,yongjin_sum, [level], isLeader )

AS (

-- 一级订单

SELECT @@fetch_status AS id, a.login_name ,

a.yaoqingma_self ,

a.yaoqingma ,

o.effect_first AS effect_sum,

o.yongjin_first,

1 ,

1

FROM dbo.sys_user a LEFT JOIN

(SELECT SUM(effect_first)effect_first,SUM(yongjin_first)yongjin_first,userid FROM dbo.sys_taobao_order

where SUBSTRING(order_time ,1,7) = @month GROUP BY userid ) o

ON a.login_name = o.userid

WHERE [yaoqingma_self] = @yaoqingma_pid

UNION ALL

-- 二级订单

SELECT @@fetch_status AS id, a.login_name ,

a.yaoqingma_self ,

a.yaoqingma ,

o.effect_second AS effect_sum,

o.yongjin_second,

1 ,

0

FROM dbo.sys_user a LEFT JOIN

(SELECT SUM(effect_second)effect_second,SUM(yongjin_second)yongjin_second,userid FROM dbo.sys_taobao_order

where SUBSTRING(order_time ,1,7) = @month GROUP BY userid ) o

ON a.login_name = o.userid

WHERE [yaoqingma] = @yaoqingma_pid

UNION ALL

-- 三级订单

SELECT @@fetch_status AS id, a.login_name ,

a.yaoqingma_self ,

a.yaoqingma ,

o.effect_third AS effect_sum,

o.yongjin_third,

2 ,

0

FROM dbo.sys_user a

INNER join sys_user b on a.yaoqingma=b.yaoqingma_self

LEFT JOIN

(SELECT SUM(effect_third)effect_third,SUM(yongjin_third)yongjin_third,userid FROM dbo.sys_taobao_order

where SUBSTRING(order_time ,1,7) = @month GROUP BY userid ) o

ON a.login_name = o.userid

WHERE a.yaoqingma IN(SELECT yaoqingma_self FROM dbo.sys_user WHERE yaoqingma=@yaoqingma_pid)

)

/** 将查询的结果放入临时表中**/

INSERT INTO #tmp SELECT *

FROM temp

FETCH NEXT FROM c_DpCursor INTO @yaoqingma_pid

-- SELECT login_name, [yaoqingma_self], [yaoqingma], 0 AS [level], 1 As isLeader FROM dbo.sys_user -- WHERE yaoqingma='NEDW4Q'

END

/**查询临时表的内容***/

SELECT * FROM #tmp

CLOSE c_DpCursor

DEALLOCATE c_DpCursor

--for example: EXEC [dbo].[P_WillPayByMonth] @month = N'2019-03'

END

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值