[英]Error-Select inside count
I have this procedure 我有这个程序
SELECT COUNT( a.id_badania ) AS iloscBadan, COUNT( b.zdjecie ) AS iloscZdjec, COUNT (SELECT id_badania FROM Badania WHERE status='W trakcie realizacji';)
FROM Badania a
INNER JOIN Zdjecia b ON a.id_badania = b.id_badania
And this error 而这个错误
You have an error in your SQL syntax;
您的SQL语法有误; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id_badania FROM Badania WHERE status='W trakcie realizacji') FROM Badani' at line 1
在第1行的“ SELECT id_badania FROM Badania WHERE status ='W trakcie realizacji')FROM Badani”中检查与您的MySQL服务器版本相对应的手册以使用正确的语法
I don't know sql well. 我不太了解sql。
You can use sum with case statement for to count the values for a particular status 您可以使用带有case语句的sum来计算特定状态的值
SELECT COUNT( a.id_badania ) AS iloscBadan, COUNT( b.zdjecie ) AS iloscZdjec, Sum( case when status='W trakcie realizacji' then 1 else 0 end )
FROM Badania a
INNER JOIN Zdjecia b ON a.id_badania = b.id_badania
You can't put a subquery in an aggregation function. 您不能将子查询放在聚合函数中。 And you have a semicolon in the middle of the query.
并且在查询中间有一个分号。 I am guessing that you just want condtiional aggregation.
我猜想您只需要条件聚合。 Either this:
可以这样:
SELECT COUNT( a.id_badania ) AS iloscBadan, COUNT( b.zdjecie ) AS iloscZdjec,
SUM(status = 'W trakcie realizacji')
FROM Badania a INNER JOIN
Zdjecia b
ON a.id_badania = b.id_badania;
Or: 要么:
SELECT COUNT( a.id_badania ) AS iloscBadan, COUNT( b.zdjecie ) AS iloscZdjec,
COUNT(DISTINCT case when status = 'W trakcie realizacji' then a.id_badania end)
FROM Badania a INNER JOIN
Zdjecia b
ON a.id_badania = b.id_badania;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.