Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL分组依据";例如;_Sql_Group By_Sql Like - Fatal编程技术网

SQL分组依据";例如;

SQL分组依据";例如;,sql,group-by,sql-like,Sql,Group By,Sql Like,我有一个查询,我在那里生成每月的客户联系活动。我们有几个类别(发电子邮件、发电子邮件、打电话进来、打电话出去等),共有8种不同的“类型”结果。我需要有两个组,一个用于所有“电子邮件”,另一个用于所有“电话”。目前,我有一个WHERE类型,如“%Email%”和“%Call%”。然而,我无法根据这两个“相似”的陈述进行分组。有人知道我怎样才能最好地做到这一点吗 我将查询简化为以下示例: SELECT TYPE FROM dbo.HISTORY WHERE (TYPE

我有一个查询,我在那里生成每月的客户联系活动。我们有几个类别(发电子邮件、发电子邮件、打电话进来、打电话出去等),共有8种不同的“类型”结果。我需要有两个组,一个用于所有“电子邮件”,另一个用于所有“电话”。目前,我有一个WHERE类型,如“%Email%”和“%Call%”。然而,我无法根据这两个“相似”的陈述进行分组。有人知道我怎样才能最好地做到这一点吗

我将查询简化为以下示例:

SELECT     TYPE
FROM         dbo.HISTORY
WHERE     (TYPE LIKE '%email%') OR
                      (TYPE LIKE '%call%')
这应该起作用:

SELECT
    TYPE
FROM
    dbo.HISTORY
WHERE
    (TYPE LIKE '%email%') OR (TYPE LIKE '%call%')
GROUP BY
    CASE
        WHEN type LIKE '%email%' THEN 'email'
        WHEN type LIKE '%call%' THEN 'call'
        ELSE NULL
    END
尽管如此,我的建议是使用一个类型代码表,其中包含另一列,告知每种类型是否被视为电子邮件或电话。这样,您就不必依赖于遵循特定格式的类型名,而这种格式肯定会被遗忘。然后,您可以轻松地对以下内容进行分组:

SELECT
    H.type
FROM
    dbo.History
INNER JOIN dbo.History_Types HT ON
    HT.history_type_code = H.history_type_code AND
    HT.history_type_category IN ('Email', 'Call')
GROUP BY
    HT.history_type_category
挑选 从 dbo.历史 内部联接dbo.History\u类型HT ON HT.history\u type\u code=H.history\u type\u code和 HT.history\u键入\u类别('Email','Call') 按HT.history\u type\u类别分组

将filter语句放入where子句不是更好吗

SELECT
    H.type FROM
    dbo.History 
    INNER JOIN dbo.History_Types HT ON
    HT.history_type_code = H.history_type_code 
WHERE **HT.history_type_category IN ('Email', 'Call')**
    GROUP BY   HT.history_type_category