Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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
Mysql 从另一个表计算列的两条SQL语句_Mysql_Sql - Fatal编程技术网

Mysql 从另一个表计算列的两条SQL语句

Mysql 从另一个表计算列的两条SQL语句,mysql,sql,Mysql,Sql,我有一个表,用于存储有关项目的信息,例如项目名称和所有者等 我有另一个表,其中有许多与一个项目相关的任务 如何运行查询以显示任务表中所有打开的任务 以下是我想要的结果集: Project Name Project Owner Open Tasks Test 1 Test Owner 5 Test 2 Test Owner 0 我的sql语句: SELECT [Project Name] as Name1, [Project

我有一个表,用于存储有关项目的信息,例如项目名称和所有者等

我有另一个表,其中有许多与一个项目相关的任务

如何运行查询以显示任务表中所有打开的任务

以下是我想要的结果集:

Project Name    Project Owner    Open Tasks
Test 1          Test Owner       5
Test 2          Test Owner       0
我的sql语句:

SELECT [Project Name] as Name1, [Project Owner]
FROM ProjectNames
UNION
SELECT distinct(count) 
FROM ActionItems
WHERE ProjectName = Name1
Order By Name1

我想那会按你的要求进行的。相应地更改列/表名称。

这样,当项目有任务时,查询的效果会非常好。如何显示包含0个任务的项目?如果我正确理解了您想要的内容,请使用左连接而不是内连接。我尝试了这种方法,但结果没有改变。这是我的查询:`SELECT pn.[Project Name],pn.[Project Owner],COUNT(ai.ID)作为'Open Tasks',projectname作为pn,Left JOIN ActionItems作为ai上的ai。[Project Name]=pn.[Project Name]其中ai.Status'cancelled'和ai.Status'Completed'按pn分组。[Project Name],[Project Owner]按“打开的任务”排序“很抱歉,我有点累了,我想问题出在WHERE子句中,她也排除了,结果是你没有任何任务。你能试试这样的方法并告诉我它是否工作:WHERE(ai.Status“Cancelled”和ai.Status“Completed”)或
打开的任务
为空。。。其他一切都应该保持不变……正如上面@AleksandarMiladinovic所建议的。使用
where in
尽管->
where ai.Status NOT in('Cancelled',Completed')或…
SELECT
    pn.`Project Name`,
    pn.`project owner`,
    COUNT(ai.actions) AS `Open Tasks`
FROM ProjectNames AS pn
INNER JOIN ActionItems AS ai
    ON ai.`ProjectName` = pn.`Project Name`
GROUP BY pn.`Project Name`
ORDER BY `Open Tasks`