簡體   English   中英

錯誤選擇內部計數

[英]Error-Select inside count

我有這個程序

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

而這個錯誤

您的SQL語法有誤; 在第1行的“ SELECT id_badania FROM Badania WHERE status ='W trakcie realizacji')FROM Badani”中檢查與您的MySQL服務器版本相對應的手冊以使用正確的語法

我不太了解sql。

您可以使用帶有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

您不能將子查詢放在聚合函數中。 並且在查詢中間有一個分號。 我猜想您只需要條件聚合。 可以這樣:

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;

要么:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM