Mysql 我想将group by用于nvarchar数据类型

Mysql 我想将group by用于nvarchar数据类型,mysql,reporting-services,ssrs-2008-r2,Mysql,Reporting Services,Ssrs 2008 R2,我的目标是创建一个查询,该查询可以按3种各自的调查类型及其各自的值进行分组。列为每隔几天自动更新一次的日期,调查类型分为不同的调查类型,即调查a、调查b和调查c。这些调查既可以标记为已发送(表示客户拥有且尚未完成),也可以标记为已接收(意味着客户已完成调查并收到信息。每个调查字符串以相同的4个字符XXX-开头。这就是我使用通配符%的原因。调查类型的格式为XXX-YY-SENT或“XXX-YY-received”。YY与特定调查类型不同。值列给出了截止日期完成的调查总数,该日期由系统每2周更新一次

我的目标是创建一个查询,该查询可以按3种各自的调查类型及其各自的值进行分组。列为每隔几天自动更新一次的日期,调查类型分为不同的调查类型,即调查a、调查b和调查c。这些调查既可以标记为已发送(表示客户拥有且尚未完成),也可以标记为已接收(意味着客户已完成调查并收到信息。每个调查字符串以相同的4个字符XXX-开头。这就是我使用通配符%的原因。调查类型的格式为XXX-YY-SENT或“XXX-YY-received”。YY与特定调查类型不同。值列给出了截止日期完成的调查总数,该日期由系统每2周更新一次。我的目标是按调查类型对数据进行分组,以便能够在ssrs中创建显示发送和接收调查之间差异的堆叠柱状图。(关于如何执行,我已经有了一个很好的想法。问题是开发查询以提取数据并按测量X(测量X发送和测量X接收的组)和测量Y(测量Y发送和测量Y接收的组)以及测量Z(测量Z发送和测量Z接收的组)对其进行分组)。以下是来自表SurveyInfo的示例数据。这是我用于提取数据的查询:

 SELECT [Date]  ,[SurveyType]  ,[Value]
 FROM SurveyInfo]
  WHERE Date IN (SELECT max(Date) FROM SurveyInfo) and SurveyType like '%XXX%'
(我想在这里按调查类型对数据进行分组) 这是数据结果

Date ,                          SurveyType,              Value 

2017-06-02 08:00:02.270     XXX-AA-SENT-WITHIN-2YR          1000.0000
2017-06-02 08:00:02.270     XXX-AA-RECEIVED-WITHIN-2YR        900.0000
2017-06-02 08:00:02.270     XXX-BB-SENT-WITHIN-2YR          1200.0000
2017-06-02 08:00:02.270     XXX-BB-RECEIVED-2YR             800.0000
2017-06-02 08:00:02.270     XXX-CC-SENT-WITHIN-2YR          500.0000
2017-06-02 08:00:02.270     XXX-CC-RECEIVED-WITHIN-2YR       400.0000

这很难理解,但我想我明白你想要什么。下面的内容对你有帮助吗

if object_id('tempdb.dbo.#test') is not null drop table #test
create table #test
(
    dateVal datetime,
    SurveyType nvarchar(500),
    SurveyValue decimal(36,4)
)

insert into #test
values('2017-06-02 08:00:02.270','XXX-AA-SENT-WITHIN-2YR',1000.0000),
 ('2017-06-02 08:00:02.270','XXX-AA-RECEIVED-WITHIN-2YR', 900.0000),
 ('2017-06-02 08:00:02.270','XXX-BB-SENT-WITHIN-2YR',          1200.0000),
 ('2017-06-02 08:00:02.270','XXX-BB-RECEIVED-2YR',             800.0000),
 ('2017-06-02 08:00:02.270','XXX-CC-SENT-WITHIN-2YR',          500.0000),
 ('2017-06-02 08:00:02.270','XXX-CC-RECEIVED-WITHIN-2YR',       400.0000)

SELECT  
    substring(SurveyType,5,2) as SurveyType,
    case when SurveyType like '%SENT%' then 'SENT' else 'RECEIVED' END as SENT_RECEIVED,
    sum(SurveyValue) as SumSurveyValue
 FROM #test 
GROUP BY 
    substring(SurveyType,5,2)  ,
    case when SurveyType like '%SENT%' then 'SENT' else 'RECEIVED' END
ORDER BY 
    SurveyType,
    SENT_RECEIVED

我看到过较短的RFP。这是怎么回事?你真的需要把它归结为一个连贯的问题,人们可以帮助你。我看着那堵文本墙,我的大脑拒绝阅读它。