查询以选择主表中的计数总和取决于详细信息表

时间:2013-09-02 20:59:32

标签: sql-server-2008

我有数据库有这样的表 database relation

我无法更改数据库结构

我想编写查询以获取所有手机的数量总和(相机及其颜色为红色),例如

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

如果有样品,请帮助我吗?

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

SELECT SUM(mobile_count) Total
FROM [master] M join [Details] D ON M.master_id = D.master_fk
WHERE mobile_camera = 1 AND mobile_color = 'red'

答案 2 :(得分:-1)

这会产生所需的结果吗?

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