Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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_Sql Server - Fatal编程技术网

Sql 需要事件类型的总计

Sql 需要事件类型的总计,sql,sql-server,Sql,Sql Server,我有一家公司举办了一定数量的活动,与“社交活动”相当。我需要基于公司的这些事件的总数,但在尝试对EVENT_TYPE列求和、转换或强制转换时抛出了一个错误。我已经盯着这个问题看了太久了,我认为一套新的眼睛和大脑可以帮助我找到显而易见的问题。代码如下: SELECT Demo_Chapter_Events.CE_EVENT_TYPE, Demo_Chapter_Events.CE_EVENT_DATE, Name.COMPANY,

我有一家公司举办了一定数量的活动,与“社交活动”相当。我需要基于公司的这些事件的总数,但在尝试对EVENT_TYPE列求和、转换或强制转换时抛出了一个错误。我已经盯着这个问题看了太久了,我认为一套新的眼睛和大脑可以帮助我找到显而易见的问题。代码如下:

SELECT     Demo_Chapter_Events.CE_EVENT_TYPE,
           Demo_Chapter_Events.CE_EVENT_DATE,
           Name.COMPANY,
           COUNT(CE_EVENT_TYPE) AS Expr1

FROM       Demo_Chapter_Events
INNER JOIN Name
ON         Demo_Chapter_Events.ID = Name.ID
WHERE      (Demo_Chapter_Events.CE_EVENT_TYPE = 'social')
AND        (Demo_Chapter_Events.CE_EVENT_DATE 
              BETWEEN CONVERT(DATETIME, '2015-08-01 00:00:00', 102) 
              AND CONVERT(DATETIME, '2015-12-31 00:00:00', 102))

GROUP BY Demo_Chapter_Events.CE_EVENT_TYPE,
         Demo_Chapter_Events.CE_EVENT_DATE,
         Name.COMPANY

ORDER BY Name.COMPANY
样本输出-

CE_EVENT_TYPE                            CE_EVENT_DATE           COMPANY                                                                          Expr1
---------------------------------------- ----------------------- -------------------------------------------------------------------------------- -----------
SOCIAL                                   2015-09-17 00:00:00.000 Alpha Alpha Chapter                                                              6
SOCIAL                                   2015-10-08 00:00:00.000 Alpha Alpha Chapter                                                              6
SOCIAL                                   2015-10-29 00:00:00.000 Alpha Alpha Chapter                                                              6
SOCIAL                                   2015-11-19 00:00:00.000 Alpha Alpha Chapter                                                              6
SOCIAL                                   2015-12-03 00:00:00.000 Alpha Alpha Chapter                                                              6
SOCIAL                                   2015-11-05 00:00:00.000 Alpha Alpha Chapter                                                              6
SOCIAL                                   2015-09-24 00:00:00.000 Alpha Beta Chapter                                                               3
SOCIAL                                   2015-11-13 00:00:00.000 Alpha Beta Chapter                                                               3
SOCIAL                                   2015-12-05 00:00:00.000 Alpha Beta Chapter                                                               3
SOCIAL                                   2015-11-14 00:00:00.000 Alpha Chapter                                                                    1
SOCIAL                                   2015-09-19 00:00:00.000 Alpha Chi Chapter                                                                16
SOCIAL                                   2015-10-16 00:00:00.000 Alpha Chi Chapter                                                                16
SOCIAL                                   2015-10-21 00:00:00.000 Alpha Chi Chapter                                                                16
SOCIAL                                   2015-10-22 00:00:00.000 Alpha Chi Chapter                                                                16
SOCIAL                                   2015-10-24 00:00:00.000 Alpha Chi Chapter                                                                16
SOCIAL                                   2015-10-30 00:00:00.000 Alpha Chi Chapter                                                                16
SOCIAL                                   2015-11-06 00:00:00.000 Alpha Chi Chapter                                                                16
SOCIAL                                   2015-11-12 00:00:00.000 Alpha Chi Chapter                                                                16
SOCIAL                                   2015-09-18 00:00:00.000 Alpha Chi Chapter                                                                16

根据你的问题目前的措辞,以下是我将如何解决它:

SELECT     d1.CE_EVENT_TYPE,
           d1.CE_EVENT_DATE,
           n1.COMPANY,
           (SELECT COUNT(*)
            FROM Demo_Chapter_Events d2
            INNER JOIN Name n2
             ON d2.ID = n2.ID
            WHERE n2.Company=n1.Company
            AND d2.CE_EVENT_TYPE = 'social'
            AND (d2.CE_EVENT_DATE 
              BETWEEN CONVERT(DATETIME, '2015-08-01 00:00:00', 102) 
              AND CONVERT(DATETIME, '2015-12-31 00:00:00', 102))
           ) AS Expr1

FROM       Demo_Chapter_Events d1
INNER JOIN Name n1
ON         d1.ID = n1.ID
WHERE      (d1.CE_EVENT_TYPE = 'social')
AND        (d1.CE_EVENT_DATE 
              BETWEEN CONVERT(DATETIME, '2015-08-01 00:00:00', 102) 
              AND CONVERT(DATETIME, '2015-12-31 00:00:00', 102))

GROUP BY d1.CE_EVENT_TYPE,
         d1.CE_EVENT_DATE,
         n1.COMPANY

ORDER BY Name.COMPANY
编辑:


我已经编辑了上面的代码,不需要按d1.ID分组,并根据名称表中的“公司”列更准确地获取计数。

根据您当前的问题措辞,我将如何解决此问题:

SELECT     d1.CE_EVENT_TYPE,
           d1.CE_EVENT_DATE,
           n1.COMPANY,
           (SELECT COUNT(*)
            FROM Demo_Chapter_Events d2
            INNER JOIN Name n2
             ON d2.ID = n2.ID
            WHERE n2.Company=n1.Company
            AND d2.CE_EVENT_TYPE = 'social'
            AND (d2.CE_EVENT_DATE 
              BETWEEN CONVERT(DATETIME, '2015-08-01 00:00:00', 102) 
              AND CONVERT(DATETIME, '2015-12-31 00:00:00', 102))
           ) AS Expr1

FROM       Demo_Chapter_Events d1
INNER JOIN Name n1
ON         d1.ID = n1.ID
WHERE      (d1.CE_EVENT_TYPE = 'social')
AND        (d1.CE_EVENT_DATE 
              BETWEEN CONVERT(DATETIME, '2015-08-01 00:00:00', 102) 
              AND CONVERT(DATETIME, '2015-12-31 00:00:00', 102))

GROUP BY d1.CE_EVENT_TYPE,
         d1.CE_EVENT_DATE,
         n1.COMPANY

ORDER BY Name.COMPANY
编辑:



我已经编辑了上面的代码,不需要group by d1.ID,并根据名称表中的Company列更正确地获取计数。

这两个代码都被标记为group by d1.ID。我道歉。谢谢你的提醒。实际回答你的问题是SQL。问题是我没有在你的查询中看到
SUM
CONVERT
。首先,我们需要导致错误的查询和确切的错误消息。然后,我们需要知道您的db模式,以了解字段的类型。最后向我们展示一些示例数据。事件类型列是CE\U事件类型列吗?它包含“社交”之类的词?你想要这些词的总和吗?还是你想说出这个词?什么数据类型?这听起来有点混乱:-)CE_EVENT_TYPE是包含单词“social”的列。我需要一个归因于Name.COMPANY列的CE_EVENT_TYPE='social'的总出现次数,以便输出是一个表示每个Name.COMPANY的总整数金额的列。CAST、SUM和CONVERT pitch无法将varchar“social”转换为INT。当前结果列表重复出现名称。公司、CE_事件类型和表示CE_事件类型的单个数字如下:[link]这两种类型都已标记。我道歉。谢谢你的提醒。实际回答你的问题是SQL。问题是我没有在你的查询中看到
SUM
CONVERT
。首先,我们需要导致错误的查询和确切的错误消息。然后,我们需要知道您的db模式,以了解字段的类型。最后向我们展示一些示例数据。事件类型列是CE\U事件类型列吗?它包含“社交”之类的词?你想要这些词的总和吗?还是你想说出这个词?什么数据类型?这听起来有点混乱:-)CE_EVENT_TYPE是包含单词“social”的列。我需要一个归因于Name.COMPANY列的CE_EVENT_TYPE='social'的总出现次数,以便输出是一个表示每个Name.COMPANY的总整数金额的列。CAST、SUM和CONVERT pitch无法将varchar“social”转换为INT。当前结果列表重复出现的名称。公司、CE_事件类型和表示CE_事件类型的单个数字如下:[link]看起来与我要查找的完全相同。我有点纠结于子查询的概念。我是这方面的新手,所以我感谢大家的耐心。不幸的是,我收到此错误消息-列“Demo\u Chapter\u Events.ID”在选择列表中无效,因为它未包含在聚合函数或GROUP BY子句中。您在问题中的查询中未选择ID。如果需要将其添加到选择列表中,还需要将其添加到GROUP BY子句中。抱歉,我已将“Demo\u Chapter\u Events.ID”添加到GROUP\u BY中,它现在似乎正在返回。谢谢。最后一件事是,由于这段代码工作得很好,我如何让它只显示名称和总数,而不显示重复的元素?请看屏幕截图[链接],我想这是应用DISTINCT的好时机,不是吗。谢谢大家!那和我要找的一模一样。我有点纠结于子查询的概念。我是这方面的新手,所以我感谢大家的耐心。不幸的是,我收到此错误消息-列“Demo\u Chapter\u Events.ID”在选择列表中无效,因为它未包含在聚合函数或GROUP BY子句中。您在问题中的查询中未选择ID。如果需要将其添加到选择列表中,还需要将其添加到GROUP BY子句中。抱歉,我已将“Demo\u Chapter\u Events.ID”添加到GROUP\u BY中,它现在似乎正在返回。谢谢。最后一件事是,由于这段代码工作得很好,我如何让它只显示名称和总数,而不显示重复的元素?请看屏幕截图[链接],我想这是应用DISTINCT的好时机,不是吗。谢谢大家!