Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/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
Sqlite:使用两个不同的;其中;_Sqlite - Fatal编程技术网

Sqlite:使用两个不同的;其中;

Sqlite:使用两个不同的;其中;,sqlite,Sqlite,如何为同一个表组合两个select查询,它们在Sqlite中有两个不同的where 我有一张超过10k行的桌子。两个示例行如下所示: year | project | finance | flow 1990 | water | 300500 | grant 1999 | energy | 200500 | loan 我的尝试无效: SELECT sum(finance), (select sum(finance) from table where flow = grant) FRO

如何为同一个表组合两个select查询,它们在Sqlite中有两个不同的where

我有一张超过10k行的桌子。两个示例行如下所示:

year | project | finance | flow
1990 | water   | 300500  | grant
1999 | energy  | 200500  | loan
我的尝试无效:

SELECT sum(finance), (select sum(finance) from table where flow = grant) 
FROM table where flow = loan group by year 
结果应按年度分组,并在赠款栏和贷款栏中列出总额(预算)

year | grant | loan
1990 | 62662 | 383983
1991 | 28928 | 278272

更新:第一个示例与我的用例不正确对应。我必须改变它

在这种情况下,用例:

 SELECT year, 
        SUM(CASE WHEN flow = 'grant' THEN finance ELSE 0 END) AS grant_total, 
        SUM(CASE WHEN flow = 'loan' THEN finance ELSE 0 END) AS loan_total
 FROM your_table 
 GROUP BY year

逻辑与您概述的不同(它是一个带有单个WHERE子句的单一SELECT),但它将有效地将您需要的数据从行转到列。

谢谢,这看起来不错,但我得到了以下错误:“Near”)“语法错误”。我已经尝试了各种版本。发现了问题。每个案件都需要结束。我把它写进你的答案里了。现在它起作用了。谢谢!!抱歉,已脱机几天,未收到您的评论。事实上,我没有把结尾放在这个案例上,而是修改了答案以显示正确的语法。