Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 server 具有子查询的聚合函数_Sql Server_Myeclipse - Fatal编程技术网

Sql server 具有子查询的聚合函数

Sql server 具有子查询的聚合函数,sql-server,myeclipse,Sql Server,Myeclipse,如果有人能给我一个回答这个问题的问题,请放心,我会结束这个问题,但我发现的大多数答案似乎都很简单,与我的问题无关 无论如何,我的问题是我想把一个子查询放到一个聚合查询中。我在下面模拟了一些伪代码,以帮助说明我希望能够做什么。困扰我的是,如果我执行查询并硬编码信息,它工作正常,但与查询不兼容 SELECT COUNT(*), SUM(CASE WHEN subtype IN (SELECT subtype FROM subtype_table WHERE random_li

如果有人能给我一个回答这个问题的问题,请放心,我会结束这个问题,但我发现的大多数答案似乎都很简单,与我的问题无关

无论如何,我的问题是我想把一个子查询放到一个聚合查询中。我在下面模拟了一些伪代码,以帮助说明我希望能够做什么。困扰我的是,如果我执行查询并硬编码信息,它工作正常,但与查询不兼容

SELECT
    COUNT(*),
    SUM(CASE WHEN subtype IN (SELECT subtype FROM subtype_table WHERE     random_limiter='X') THEN mainTable.quantity ELSE 0)
FROM mainTable
GROUP BY mainTable.groupingColumn
上述代码将给出以下错误:

无法对包含 聚合或子查询

但是如果我用一些文本(比如(1,2,3,4,5)中的子类型)替换查询,它就可以正常工作

有什么方法可以在我的总和中使用查询吗?如果没有,我的其他选择是什么?如果可能的话,我更愿意将其保存在一个查询中。还值得注意的是,在我的实际查询中,我有多个和,每个和都有不同的子查询

SELECT
    COUNT(*),
    COUNT(s.subtype)
FROM mainTable m
LEFT JOIN subtype_table s ON m.subtype = s.subtype AND s.random_limiter = 'X'
GROUP BY m.groupingColumn
问题2


我真的希望它不是那么简单,我只是没有从我看到的其他例子中得到它。。。如果对我有效,我会尝试并接受它。如果子类型表中有多个匹配项,这不会产生意外的结果吗?我刚刚实现并发现了这一点。将尝试使用第二个。另外,我实现了它,它似乎正在工作。我将需要更长的时间来验证结果,但这似乎是正确的。感谢您的快速响应。此错误是在子查询返回多个结果时产生的。你可以做一个计数。@Alfons不会改为计数给我总数,而不是总数吗?我应用我把1和0作为结果。。。如果这与mainTable.quantity类似,会发生什么?
SELECT
    COUNT(*),
    COUNT(s.subtype)
FROM mainTable m
LEFT JOIN (
    SELECT DISTINCT subtype
    FROM subtype_table
    WHERE random_limiter = 'X'
) s ON m.subtype = s.subtype
GROUP BY m.groupingColumn