存储过程+联合查询返回字符串

本文介绍了一个SQL存储过程的创建实例,该过程名为GetTable,用于从数据库中检索特定时间段内的用户数据,包括用户ID、用户名、代理数量、充值金额及佣金金额等信息。存储过程接受三个参数:用户名、开始时间和结束时间,其中结束时间默认为当前时间。通过条件判断和字符串拼接,实现了灵活的查询功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


if Exists(select name from sysobjects where NAME = 'GetTable' and type='P')
drop procedure GetTable
go
CREATE PROCEDURE GetTable
@name nvarchar(50)=null,
@Time1 datetime='2017-03-07 00:00:00',
@Time2 datetime=null
AS
BEGIN
DECLARE @Str nvarchar(max)=''
if @Time2 is null
BEGIN
set @Time2=GETDATE()
END
set @Str='SELECT w.ID,w.UserAccount,(SELECT COUNT(1) AS Expr1 FROM dbo.BI6WebSiteUser AS c WHERE (ParentAgencyID = w.ID) AND (UserType = 2)) AS Agentcount
isnull(SUM(p.Paymoney),0) as RechargeAmount,isnull(Sum(isnull(p.AgentDividedMoney,0)),0) as CommissionAmount
from dbo.WebSiteUser as w , dbo.Boing_PayHheOrderForm as p
where w.ID=p.AgentDividedID and p.IsDelete=1 and p.CreateTime>='+@Time1+' and p.CreateTime<='+@Time2
if @name is not null
BEGIN
set @Str+=' and UserAccount='+@name
END

set @Str+=' GROUP BY w.ID,w.UserAccount'
Return @Str
END

--declare @SrtDate nvarchar(max)
execute GetTable NULL,'2017-12-05 17:35:27.193'
--print @SrtDate @SrtDate=

转载于:https://www.cnblogs.com/ZxtIsCnblogs/p/8004336.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值