SQL选择难题

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

好的,这是我想做的。我把下面的例子简单化了:-

我有一个表(表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 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

好东西。我用它作为我的解决方案的基础,它工作得非常好。也学到了一些新的东西-以前从未遇到过语法…很棒的东西。我用它作为我的解决方案的基础,它工作得非常好。也学到了一些新的东西——以前从未遇到过这种情况。。