找回密码
 立即注册

QQ登录

只需一步,快速开始

xiao84876525
金牌服务用户   /  发表于:2023-11-29 09:47  /   查看:1173  /  回复:1
20金币
  1. DECLARE @query NVARCHAR(MAX),@Salesmen varchar(200)

  2. set @Salesmen= '""生庆禹","任宇航","侯俊帅","马聪","魏军","刘亚伟","钱正伦","许丹娜","田一傲雪","周鹏","于勇林"" '



  3. SET @Salesmen = REPLACE(@Salesmen, '"', '');



  4. --SELECT '@Salesmen=' + QUOTENAME(@Salesmen, '"');

  5. SET @Salesmen = REPLACE(@Salesmen, '"', '')

  6. SET @Salesmen = REPLACE(@Salesmen, ',', ''',''')

  7. SET @query = '

  8. SELECT

  9.     业务员,

  10.     年,

  11.     SUM([1月]) as ''1月'',

  12.     SUM([2月]) as ''2月'',

  13.     SUM([3月]) as ''3月'',

  14.     SUM([4月]) as ''4月'',

  15.     SUM([5月]) as ''5月'',

  16.     SUM([6月]) as ''6月'',

  17.     SUM([7月]) as ''7月'',

  18.     SUM([8月]) as ''8月'',

  19.     SUM([9月]) as ''9月'',

  20.     SUM([10月]) as ''10月'',

  21.     SUM([11月]) as ''11月'',

  22.     SUM([12月]) as ''12月''

  23. FROM (

  24.     SELECT

  25.         CASE

  26.             WHEN NameOfTrueOrg =''大连桥口贸易有限公司-任宇航(青岛)'' THEN ''任宇航''

  27.             ELSE SUBSTRING(NameOfTrueOrg, CHARINDEX(''-'', NameOfTrueOrg) + 1, LEN(NameOfTrueOrg))  

  28.         END as 业务员,

  29.         YEAR(CreateTime) as 年,

  30.         SUM(CASE WHEN MONTH(CreateTime) = 1 THEN NeedCharges ELSE 0 END) as ''1月'',

  31.         SUM(CASE WHEN MONTH(CreateTime) = 2 THEN NeedCharges ELSE 0 END) as ''2月'',

  32.         SUM(CASE WHEN MONTH(CreateTime) = 3 THEN NeedCharges ELSE 0 END) as ''3月'',

  33.         SUM(CASE WHEN MONTH(CreateTime) = 4 THEN NeedCharges ELSE 0 END) as ''4月'',

  34.         SUM(CASE WHEN MONTH(CreateTime) = 5 THEN NeedCharges ELSE 0 END) as ''5月'',

  35.         SUM(CASE WHEN MONTH(CreateTime) = 6 THEN NeedCharges ELSE 0 END) as ''6月'',

  36.         SUM(CASE WHEN MONTH(CreateTime) = 7 THEN NeedCharges ELSE 0 END) as ''7月'',

  37.         SUM(CASE WHEN MONTH(CreateTime) = 8 THEN NeedCharges ELSE 0 END) as ''8月'',

  38.         SUM(CASE WHEN MONTH(CreateTime) = 9 THEN NeedCharges ELSE 0 END) as ''9月'',

  39.         SUM(CASE WHEN MONTH(CreateTime) = 10 THEN NeedCharges ELSE 0 END) as ''10月'',

  40.         SUM(CASE WHEN MONTH(CreateTime) = 11 THEN NeedCharges ELSE 0 END) as ''11月'',

  41.         SUM(CASE WHEN MONTH(CreateTime) = 12 THEN NeedCharges ELSE 0 END) as ''12月''

  42.     FROM T_Biz_Task

  43.     WHERE NameOfTrueOrg in (''北京京检实力可技术检测有限公司-生庆禹'',''大连桥口贸易有限公司-任宇航(青岛)'',''梅里埃检测技术(北京)有限公司-侯俊帅'',''梅里埃检测技术(北京)有限公司-马聪'',''梅里埃检测技术(北京)有限公司-魏军'',''梅里埃检测技术(宁波)有限公司-刘亚伟'',''梅里埃检测技术(宁波)有限公司-钱正伦 '',''梅里埃检测技术(宁波)有限公司-许丹娜'',''梅里埃检测技术(青岛)有限公司-田一傲雪'',''梅里埃检测技术(青岛)有限公司-任宇航'')

  44.     GROUP BY NameOfTrueOrg, YEAR(CreateTime)



  45.     UNION ALL



  46.     SELECT

  47.         Salesman as 业务员,

  48.         YEAR(CreateTime) as 年,

  49.         SUM(CASE WHEN MONTH(CreateTime) = 1 THEN NeedCharges ELSE 0 END) as ''1月'',

  50.         SUM(CASE WHEN MONTH(CreateTime) = 2 THEN NeedCharges ELSE 0 END) as ''2月'',

  51.         SUM(CASE WHEN MONTH(CreateTime) = 3 THEN NeedCharges ELSE 0 END) as ''3月'',

  52.         SUM(CASE WHEN MONTH(CreateTime) = 4 THEN NeedCharges ELSE 0 END) as ''4月'',

  53.         SUM(CASE WHEN MONTH(CreateTime) = 5 THEN NeedCharges ELSE 0 END) as ''5月'',

  54.         SUM(CASE WHEN MONTH(CreateTime) = 6 THEN NeedCharges ELSE 0 END) as ''6月'',

  55.         SUM(CASE WHEN MONTH(CreateTime) = 7 THEN NeedCharges ELSE 0 END) as ''7月'',

  56.         SUM(CASE WHEN MONTH(CreateTime) = 8 THEN NeedCharges ELSE 0 END) as ''8月'',

  57.         SUM(CASE WHEN MONTH(CreateTime) = 9 THEN NeedCharges ELSE 0 END) as ''9月'',

  58.         SUM(CASE WHEN MONTH(CreateTime) = 10 THEN NeedCharges ELSE 0 END) as ''10月'',

  59.         SUM(CASE WHEN MONTH(CreateTime) = 11 THEN NeedCharges ELSE 0 END) as ''11月'',

  60.         SUM(CASE WHEN MONTH(CreateTime) = 12 THEN NeedCharges ELSE 0 END) as ''12月''

  61.     FROM T_Biz_Task

  62.     WHERE Salesman in (''' + @Salesmen + ''')

  63.     GROUP BY Salesman, YEAR(CreateTime)

  64. ) combined_data

  65. GROUP BY 业务员, 年

  66. ORDER BY 业务员, 年';



  67. EXEC sp_executesql @query;
复制代码
SQL代码是这样的   ,活字格里面只是把  @Salesmen 的值通过页面上的文本框获取

查询出来只有我写死了SQL的业务员的东西,通过传值去查询的东西没有   


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,执行 SQL 命令的参数 IN 还传递不进去哈。已经记录了需求。 您可以参考下面这个帖子来解决: 服务端命令执行sql 参数中的值不能是多个吗 https://gcdn.grapecity.com.cn/showtopic-138810-1-1.html (出处: 葡萄城开发者社区)

1 个回复

倒序浏览
最佳答案
最佳答案
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2023-11-29 09:47:45
来自 2#
您好,执行 SQL 命令的参数 IN 还传递不进去哈。已经记录了需求。

您可以参考下面这个帖子来解决:

服务端命令执行sql 参数中的值不能是多个吗
https://gcdn.grapecity.com.cn/showtopic-138810-1-1.html
(出处: 葡萄城开发者社区)


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部