roy_88版主大人请进下

qq_26006573 qq_26006573 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
ALTER PROCEDURE P1
(
@StartDate DATETIME , --2016-08-01
@EndDate DATETIME, --2016-08-01 23:59:59
@Usertb_code varchar(50)=NULL
)
AS

DECLARE @Sql NVARCHAR(max)

SELECT @Sql=ISNULL(@Sql+',','')+QUOTENAME(Sntb_name)+'=ISNULL(SUM(CASE WHEN '
+CASE WHEN CONVERT(VARCHAR(8),Sntb_ksdt,8)>CONVERT(VARCHAR(8),Sntb_jsdt,8)
THEN 'CONVERT(VARCHAR(8),b.Xfsourcee_sj,8) BETWEEN '''+CONVERT(VARCHAR(8),Sntb_ksdt,8) +''' AND ''23:59:59'' OR CONVERT(VARCHAR(8),b.Xfsourcee_sj,8) BETWEEN ''00:00:00'' AND '''+CONVERT(VARCHAR(8),Sntb_jsdt,8) +''''
ELSE
'CONVERT(VARCHAR(8),b.Xfsourcee_sj,8) BETWEEN '''+CONVERT(VARCHAR(8),Sntb_ksdt,8) +''' AND '''+CONVERT(VARCHAR(8),Sntb_jsdt,8) +'''' END
+' THEN b.Xfsourcee_jr ELSE 0 END),0)'
FROM dbo.Sntb
--PRINT @Sql
SET @Sql='SELECT '+@Sql+',
COUNT(*) AS 消费次数 ,
COUNT(DISTINCT a.Usertb_code) AS 消费人数 , --这里没意义,显示固定为1,你查的是一个人
ISNULL(SUM(b.Xfsourcee_jr),0) AS 合计
FROM Usertb AS a
INNER JOIN Xfsourcee AS b ON b.Xfsourcee_code = a.Usertb_code
WHERE b.Xfsourcee_sj between @StartDate AND @EndDate'+CASE WHEN @Usertb_code>'' THEN ' AND a.Usertb_code=@Usertb_code' ELSE '' END
EXEC sys.sp_executesql @Sql,N'@StartDate datetime,@EndDate datetime , @Usertb_code varchar(50)',@StartDate,@EndDate,@Usertb_code
GO

版主大人 roy_88 你给我写的这个过程 有一个地方能修改下么,就是 我想统计出的过来是这样的

早餐金额 早餐人数 早餐笔数 加一个早餐人数和笔数 现在只有总合计的。
...全文
评论 11
收藏 已收藏
分享
返回顶部
qq_26006573
疑难问题 22,298 成员 121,727 内容