Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.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
用于在我的Excel中复制SUMIF的SQL函数_Sql_Sql Server_Excel Formula_Sumifs - Fatal编程技术网

用于在我的Excel中复制SUMIF的SQL函数

用于在我的Excel中复制SUMIF的SQL函数,sql,sql-server,excel-formula,sumifs,Sql,Sql Server,Excel Formula,Sumifs,我是SQL Server 2012新手,希望尽量减少Excel中的数据处理 我有我的主数据集,然后我想从这些数据中进行SUMIF,只返回SUMIF不等于零的行 我使用下面的函数,它在不同的时间返回不同的结果 错误的可能原因是某些行的AccID为空 , main_data2 as ( select md.* from main_data md left join ( select

我是SQL Server 2012新手,希望尽量减少Excel中的数据处理

我有我的主数据集,然后我想从这些数据中进行SUMIF,只返回SUMIF不等于零的行

我使用下面的函数,它在不同的时间返回不同的结果

错误的可能原因是某些行的AccID为空

, main_data2 as 
(

    select
            md.*

    from main_data md
    left join
    (
            select 
                AccID
                ,sum(amount) as total_amount
            from main_data
            group by AccID
            having sum(amount) <> 0 

) md2 on md.AccID = md2.AccID

where md2.AccID is null

)

如果希望保留最终结果集中的所有帐户,则左联接似乎是合适的。您已有的子查询将查找具有非零和的帐户。您可以将main_数据左键联接到此子查询,然后如果每个记录的对应帐户和为零,则可以选择将其标记为空

SELECT
    md.*,
    CASE WHEN md2.AccID IS NULL THEN 'Empty' END AS label
FROM main_data md
LEFT JOIN
(
    SELECT AccID, SUM(amount) AS total_amount
    FROM main_data
    GROUP BY AccID
    HAVING SUM(amount) <> 0 
) md2
    ON md.AccID = md2.AccID

如果希望保留最终结果集中的所有帐户,则左联接似乎是合适的。您已有的子查询将查找具有非零和的帐户。您可以将main_数据左键联接到此子查询,然后如果每个记录的对应帐户和为零,则可以选择将其标记为空

SELECT
    md.*,
    CASE WHEN md2.AccID IS NULL THEN 'Empty' END AS label
FROM main_data md
LEFT JOIN
(
    SELECT AccID, SUM(amount) AS total_amount
    FROM main_data
    GROUP BY AccID
    HAVING SUM(amount) <> 0 
) md2
    ON md.AccID = md2.AccID

我需要在最终结果中包括AccID为空的行。现在您正在更改您的要求。您是只想要其帐户具有非零和的记录,还是想要所有记录?如果是后者,那么子查询的意义是什么?我需要在最终结果中包含AccID为空的行。现在您正在更改您的要求。您是只想要其帐户具有非零和的记录,还是想要所有记录?如果是后者,那么子查询的意义是什么?我不需要在最终结果中包含所有结果。只需要那些sumif余额非零的和那些没有accountID的,这样我就可以手动处理它们了。就数据加载而言,通常在sumif前后加载50万个数据,它应该只返回大约5000个行项目。此过程试图避免在excel.ones中处理大数据,而excel.ones中根本没有accountID。。。这没有意义,因为您正在进行自联接。帐户ID的设置原则上在联接的两侧都是相同的。啊,我明白你的意思了,正如我提到的,当你得到一个空白单元格时,如果它返回0,我对SQL和Excel都是新手。但是你的观点是对的,在这里不用担心。如果你给我们展示你的预期结果,也许我可以以某种方式改变我的答案。我不需要在我的最终结果中包含所有结果。只需要那些sumif余额非零的和那些没有accountID的,这样我就可以手动处理它们了。就数据加载而言,通常在sumif前后加载50万个数据,它应该只返回大约5000个行项目。此过程试图避免在excel.ones中处理大数据,而excel.ones中根本没有accountID。。。这没有意义,因为您正在进行自联接。帐户ID的设置原则上在联接的两侧都是相同的。啊,我明白你的意思了,正如我提到的,当你得到一个空白单元格时,如果它返回0,我对SQL和Excel都是新手。但你的观点是对的,在这里不用担心。如果你给我们展示你的预期产出,也许我可以以某种方式改变我的答案。