SQL选择难题
好的,这是我想做的。我把下面的例子简单化了:- 我有一个表(表1),其中有如下参考: 表1\u ID(主键) 表1\u ID说明 还有一张桌子(表2):- 表2\u ID(主键) 表2\u Linkeded(FK) 表2\u状态 确保外键和SQL选择难题,sql,sql-server,tsql,Sql,Sql Server,Tsql,好的,这是我想做的。我把下面的例子简单化了:- 我有一个表(表1),其中有如下参考: 表1\u ID(主键) 表1\u ID说明 还有一张桌子(表2):- 表2\u ID(主键) 表2\u Linkeded(FK) 表2\u状态 确保外键和表2\u状态有一个适当的索引,以获得最佳性能 确保外键和表2\u状态有一个适当的索引,以获得最佳性能。您可以使用聚合创建一个简单的分组: SELECT Table1.ID, Table1.Description, Count(Table2.ID) AS T
表2\u状态有一个适当的索引,以获得最佳性能
确保外键和表2\u状态有一个适当的索引,以获得最佳性能。您可以使用聚合创建一个简单的分组:
SELECT
Table1.ID,
Table1.Description,
Count(Table2.ID) AS TotalT2,
Sum(CASE WHEN Table2.Status = 'completed' THEN 1 ELSE 0 END) AS CountOfCompleted
FROM Table1
LEFT JOIN Table2 ON Table2.LinkedID = Table1.ID
GROUP BY Table1.ID, Table1.Description
您可以使用聚合创建一个简单的分组:
SELECT
Table1.ID,
Table1.Description,
Count(Table2.ID) AS TotalT2,
Sum(CASE WHEN Table2.Status = 'completed' THEN 1 ELSE 0 END) AS CountOfCompleted
FROM Table1
LEFT JOIN Table2 ON Table2.LinkedID = Table1.ID
GROUP BY Table1.ID, Table1.Description
这对你有用吗
问题1:
select a.ID
, count(1) as Table2_RecordCount
from Table1 a
inner join Table2 b on b.LinkedID = a.ID
group by a.ID
问题2:
select a.ID
, count(1) as Table2_RecordCount
from Table1 a
inner join Table2 b on b.LinkedID = a.ID
where b.[Status] = 'completed'
group by a.ID
这对你有用吗
问题1:
select a.ID
, count(1) as Table2_RecordCount
from Table1 a
inner join Table2 b on b.LinkedID = a.ID
group by a.ID
问题2:
select a.ID
, count(1) as Table2_RecordCount
from Table1 a
inner join Table2 b on b.LinkedID = a.ID
where b.[Status] = 'completed'
group by a.ID
好东西。我用它作为我的解决方案的基础,它工作得非常好。也学到了一些新的东西-以前从未遇到过语法…很棒的东西。我用它作为我的解决方案的基础,它工作得非常好。也学到了一些新的东西——以前从未遇到过这种情况。。