Sql server SQL从()中的每个项返回结果
嗨,有人能帮我吗 我提出这个问题:Sql server SQL从()中的每个项返回结果,sql-server,Sql Server,嗨,有人能帮我吗 我提出这个问题: SELECT DISTINCT(CAMPAIGN), count(STATUS) FROM C18_101 INNER JOIN CLIENT_10 ON C18_101.ID = CLIENT_10.ID WHERE CAMPAIGN in ('Batch 1','Batch 2','Batch 3','Batch 4','Batch 5') AND STATUS = 'Pending' GROUP BY CAMPAIGN,STATU
SELECT DISTINCT(CAMPAIGN),
count(STATUS)
FROM
C18_101 INNER JOIN CLIENT_10 ON C18_101.ID = CLIENT_10.ID
WHERE CAMPAIGN in ('Batch 1','Batch 2','Batch 3','Batch 4','Batch 5') AND STATUS = 'Pending'
GROUP BY CAMPAIGN,STATUS
结果如下所示:
Batch 2 241
Batch 3 321
Batch 4 575
Batch 5 429
我还需要Batch1的结果,即使没有结果
SELECT CAMPAIGN,
count(STATUS)
FROM C18_101
LEFT JOIN CLIENT_10 ON C18_101.ID = CLIENT_10.ID AND STATUS = 'Pending'
WHERE CAMPAIGN in ('Batch 1','Batch 2','Batch 3','Batch 4','Batch 5')
GROUP BY CAMPAIGN
您可以分组,也可以聚合,而不是同时分组和聚合
在加入之前,请进行区分,以确保每个活动的计数正确
你真的需要活动过滤器吗?如果是,则添加到派生表X
这个问题似乎还可以。检查“批次1”的状态是否为pending@ARS:即使没有记录,他也想要第一批。@TimSchmelter:噢,我没抓住那一点。。我想我服用的治疗背痛的止痛药影响了我的注意力:嗨,我知道第1批没有数据,当没有数据时我需要一个0。这太糟糕了。您有一个计数和分组依据状态。DISTINCT是每行,而不是每列。不知道哪个列来自哪个表。这仍然是错误的。DISTINCT是前一行,而不是每列。你不能计数和分组谢谢你,我很高兴得到帮助,但是活动已经在表中了。现在我在join@user2358570:请选择什么?选择CLIENT\u NLE001.SIZO\u CAMPAIGN\u ID\u C,countX.lib_status FROM SELECT DISTINCT CLIENT_NLE001.SIZO_CAMPAIGN_ID_C FROM C18_NLE001 X internal JOIN CLIENT_NLE001 ON X.INDICE=CLIENT_NLE001.INDICE和C.status='Missed Calls Rules'GROUP BY X.SIZO_CAMPAIGN_ID_C响应为:[FreeTDS][SQL Server]无法绑定多部分标识符客户端\u NLE001.SIZO\u活动\u ID\u C。[FreeTDS][SQL Server]列名“INDICE”无效。[FreeTDS][SQL Server]无法绑定多部分标识符C.STATUS。[FreeTDS][SQL Server]列名“lib_status”无效。@user2358570:请尝试将我编写的内容应用于您的SQL。为什么使用X.Status?为什么要更改表名?为什么不回答这些评论呢。请不要浪费我们的时间。对不起,你真的帮了我,在你的帮助下,我们可以这样做:选择Q2.result,Q2.text FROM SELECT DISTINCT COUNTCLIENT\u NLE001.SIZO\u CAMPAIGN\u ID\u C作为结果,CLIENT_NLE001.SIZO_CAMPAIGN_ID_uuc作为C18_NLE001上的C18_NLE001内部连接CLIENT_NLE001的文本。INDICE=CLIENT_NLE001.INDICE其中LIB_STATUS=‘未接来电规则’组由所有SIZO_CAMPAIGN_uid_uc Q2
SELECT
X.CAMPAIGN,
count(STATUS)
FROM
(SELECT DISTINCT CAMPAIGN FROM C18_101) X
LEFT JOIN
CLIENT_10 C ON X.ID = C.ID AND C.STATUS = 'Pending'
GROUP BY
X.CAMPAIGN