Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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/9/solr/3.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_Tsql - Fatal编程技术网

在SQL中计算插件/平衡

在SQL中计算插件/平衡,sql,sql-server,tsql,Sql,Sql Server,Tsql,我的当前表中有几个帐户,它们总是具有最小值,例如,当前表中的X&Y代表实际值,AA、BB、CC&DD代表计划值。具有最小值的帐户可以扩展到这些帐户之外。我需要将此类账户归类为称为余额的代理账户,余额始终为[最终abc+def+ghi],请参考预期表格。我正在尝试使用SQL来构造它 帐户不在“abc”、“def”和“ghi”中时的总和情况 此处为示例数据集: SQL尝试 我认为把它分成两个步骤会更容易。在一个步骤中更改值,并在另一个步骤中对行进行分组 SELECT year, month, typ

我的当前表中有几个帐户,它们总是具有最小值,例如,当前表中的X&Y代表实际值,AA、BB、CC&DD代表计划值。具有最小值的帐户可以扩展到这些帐户之外。我需要将此类账户归类为称为余额的代理账户,余额始终为[最终abc+def+ghi],请参考预期表格。我正在尝试使用SQL来构造它 帐户不在“abc”、“def”和“ghi”中时的总和情况

此处为示例数据集:

SQL尝试


我认为把它分成两个步骤会更容易。在一个步骤中更改值,并在另一个步骤中对行进行分组

SELECT year, month, type, account_2, SUM(amount) AS amount_2
FROM (
    SELECT year, month, type, amount,
        CASE WHEN accounts IN ('abc', 'def', 'ghi', 'final') THEN accounts 
        ELSE 'balance' END AS account_2
    FROM someTable
) AS tmp
GROUP BY year, month, type, account_2

请展示你的尝试。请不要使用图像作为数据,请使用格式化文本。@DaleK:trust updated抱歉,没有得到这个。那么如何计算余额呢?@Tony如果您将示例数据添加为格式化文本,或者更好的DDL+DML,那么人们就可以测试他们的解决方案是否有效,而无需重新键入所有示例数据-这符合您的最佳利益。@DaleK;链接更新:@Tony如果你用小提琴试试这个答案,它会返回你想要的结果。顺便提一下,为什么要引用数值?没有必要……谢谢!对不起,我没意识到。谢谢你们两位!
SELECT year, month, type, account_2, SUM(amount) AS amount_2
FROM (
    SELECT year, month, type, amount,
        CASE WHEN accounts IN ('abc', 'def', 'ghi', 'final') THEN accounts 
        ELSE 'balance' END AS account_2
    FROM someTable
) AS tmp
GROUP BY year, month, type, account_2