Sql 如何划分嵌套查询的两个结果

Sql 如何划分嵌套查询的两个结果,sql,Sql,如何划分嵌套查询的两个结果??我的意思是:我有一个存储过程 SELECT s.sheep_id,        ( s.sheepThatHadBirth / ( s.sheepThatHadBirth + s1.sheepThatNotHadBirth ) ) * 100 FROM   (SELECT sheep_id,                Count(*) AS sheepThatHadBirth         FROM   FemaleSheep_Has_Wave      

如何划分嵌套查询的两个结果??我的意思是:我有一个存储过程

SELECT s.sheep_id,
       ( s.sheepThatHadBirth / ( s.sheepThatHadBirth + s1.sheepThatNotHadBirth ) ) * 100
FROM   (SELECT sheep_id,
               Count(*) AS sheepThatHadBirth
        FROM   FemaleSheep_Has_Wave
        WHERE  pregnencies_succeded = 1
        GROUP  BY sheep_id)AS s
       CROSS JOIN (SELECT sheep_id,
                          Count(*) AS sheepThatNotHadBirth
                   FROM   FemaleSheep_Has_Wave
                   WHERE  pregnencies_succeded = 0
                   GROUP  BY sheep_id)AS s1 
结果是不正确的,因为我认为交叉连接
请帮忙谢谢

您根本不需要加入

SELECT sheep_id,
       100.0 * Sum(CASE
                     WHEN pregnencies_succeded = 1 THEN 1
                     ELSE 0
                   END) / Count(*) AS pregnencies_succeded_pct
FROM   FemaleSheep_Has_Wave
GROUP  BY sheep_id 

或者只是
Sum(CAST(怀孕成功为INT))/Count(*)
可能。或者甚至只是。avg(1.0*怀孕成功)。您使用的RDBMS是什么?成功怀孕的数据类型是什么?