Sql server 2008 查询以选择主表中的计数总和取决于明细表

Sql server 2008 查询以选择主表中的计数总和取决于明细表,sql-server-2008,Sql Server 2008,我有一个数据库,它有这样的表 我无法更改数据库结构 例如,我想写一个查询来计算所有手机的总数(一个摄像头,它的颜色是红色的) 我找到了一个方法,但它太复杂了 如果有样品的话,你能帮我吗 SELECT SUM(mobile_count) Total FROM [master] M WHERE EXISTS(SELECT 1 FROM [details] WHERE master_fk = M.master_id AND mobile_camer

我有一个数据库,它有这样的表

我无法更改数据库结构

例如,我想写一个查询来计算所有手机的总数(一个摄像头,它的颜色是红色的)

我找到了一个方法,但它太复杂了

如果有样品的话,你能帮我吗

SELECT SUM(mobile_count) Total
FROM [master] M
WHERE EXISTS(SELECT 1 FROM [details]
             WHERE master_fk = M.master_id
             AND mobile_camera = 1
             AND mobile_color = 'red')
另一方面,我真的希望您为主键选择一个未聚集的索引,因为您使用的是
UNIQUEIDENTIFIER


另一方面,我真的希望您为主键选择了一个未分类的索引,因为您使用的是
UNIQUEIDENTIFIER

这会产生所需的结果吗

SELECT SUM(mobile_count)
FROM master INNER JOIN details ON master_id = master_fk
WHERE mobile_camera = 1 and mobile_color = 'red'

这会产生需要的结果吗

SELECT SUM(mobile_count)
FROM master INNER JOIN details ON master_id = master_fk
WHERE mobile_camera = 1 and mobile_color = 'red'

这是一个简单连接的问题,不应该很复杂,请显示您的SQL代码这是一个简单连接的问题,不应该很复杂,请显示您的SQL代码抱歉迟到了,但是我不明白您主要做了什么,因为
选择了一个未加密的索引
@Aroo有很多链接解释为什么使用
NEWID()
生成用作聚集索引的GUID是个坏主意:很抱歉,我迟到了,但我不明白您的主旨是什么,因为
选择了一个未加密的索引
@Aroo有许多链接解释了为什么使用
NEWID()
生成用作聚集索引的GUID是个坏主意: