派生的多重计数 table
multiple count on derived table
我正在尝试使用派生的 table 计算入围总数和感兴趣总数,但它不起作用。
select (SELECT COUNT(ID) FROM Dtable WHERE Is_shortlisted=1) AS TOTALSHORLISTED,
(SELECT COUNT(ID) FROM Dtable WHERE Is_Interested=1) AS TOTALINERESTED
from (
SELECT BM.ID,
BM.Is_Interested,
BM.Is_shortlisted,
BM.Business_Masla_Status_ID
FROM Business_Maslahal BM
INNER join Vw_MaslaInfo MI
on BM.[MaslaHal_ID]=MI.ID and BM.ID=2 AND MI.Masla_status_ID IN(1,2)
) Dtable
试试这个方法:
select SUM(CASE WHEN Is_shortlisted=1 THEN 1 ELSE 0 END) AS TOTALSHORLISTED,
SUM(CASE WHEN Is_Interested=1 THEN 1 ELSE 0 END) AS TOTALINERESTED
from (
SELECT BM.ID,
BM.Is_Interested,
BM.Is_shortlisted,
BM.Business_Masla_Status_ID
FROM Business_Maslahal BM
INNER join Vw_MaslaInfo MI
on BM.[MaslaHal_ID]=MI.ID and BM.ID=2 AND MI.Masla_status_ID IN(1,2)
) Dtable
实际上,您甚至不需要派生 table:
SELECT SUM(CASE WHEN Is_shortlisted=1 THEN 1 ELSE 0 END) AS TOTALSHORLISTED,
SUM(CASE WHEN Is_Interested=1 THEN 1 ELSE 0 END) AS TOTALINERESTED
FROM Business_Maslahal BM
INNER join Vw_MaslaInfo MI
ON BM.[MaslaHal_ID]=MI.ID
WHERE and BM.ID=2
AND MI.Masla_status_ID IN(1,2)
我还将一些条件从 ON
子句移到了 WHERE
子句。它应该对结果没有影响,但它使查询更具可读性。
我正在尝试使用派生的 table 计算入围总数和感兴趣总数,但它不起作用。
select (SELECT COUNT(ID) FROM Dtable WHERE Is_shortlisted=1) AS TOTALSHORLISTED,
(SELECT COUNT(ID) FROM Dtable WHERE Is_Interested=1) AS TOTALINERESTED
from (
SELECT BM.ID,
BM.Is_Interested,
BM.Is_shortlisted,
BM.Business_Masla_Status_ID
FROM Business_Maslahal BM
INNER join Vw_MaslaInfo MI
on BM.[MaslaHal_ID]=MI.ID and BM.ID=2 AND MI.Masla_status_ID IN(1,2)
) Dtable
试试这个方法:
select SUM(CASE WHEN Is_shortlisted=1 THEN 1 ELSE 0 END) AS TOTALSHORLISTED,
SUM(CASE WHEN Is_Interested=1 THEN 1 ELSE 0 END) AS TOTALINERESTED
from (
SELECT BM.ID,
BM.Is_Interested,
BM.Is_shortlisted,
BM.Business_Masla_Status_ID
FROM Business_Maslahal BM
INNER join Vw_MaslaInfo MI
on BM.[MaslaHal_ID]=MI.ID and BM.ID=2 AND MI.Masla_status_ID IN(1,2)
) Dtable
实际上,您甚至不需要派生 table:
SELECT SUM(CASE WHEN Is_shortlisted=1 THEN 1 ELSE 0 END) AS TOTALSHORLISTED,
SUM(CASE WHEN Is_Interested=1 THEN 1 ELSE 0 END) AS TOTALINERESTED
FROM Business_Maslahal BM
INNER join Vw_MaslaInfo MI
ON BM.[MaslaHal_ID]=MI.ID
WHERE and BM.ID=2
AND MI.Masla_status_ID IN(1,2)
我还将一些条件从 ON
子句移到了 WHERE
子句。它应该对结果没有影响,但它使查询更具可读性。