2012-06-19 69 views
1

背景:有多个DBPArentProductKEys与POG.ID关联。来自2个表的SQL计数

我需要计算发生的Pog.DBKEYs的数量。现在,结果会计算总数据库中的总POG.ID数值为4,但我希望计数与DBparentproductkey相关联。

select distinct 
    Count(pog.DBKey) as Total, 
    pos.DBParentProductKey 
from 
    ix_spc_planogram as pog with (nolock), ix_spc_position as pos with (nolock), 
    ix_spc_product as pro with (nolock) 
where 
    pog.dbkey = pos.dbparentplanogramkey 
    and pog.Value4 = 358 
group by 
    pog.DBKey, pos.DBParentProductKey 
+0

欢迎使用StackOverflow:如果您发布代码,XML或数据样本,请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(“{}”)格式和语法突出显示它! –

+2

除了@marc_s提供的好建议外,如果您发布SQL查询类型问题的测试数据和预期结果,它也会有所帮助。 – dcp

+0

隐式连接语法(逗号分隔的'FROM'子句)被认为是反模式。这可以帮助你发现缺少'JOIN'条件(如@dcp提到的),这可能会抛出你的结果(尤其是因为你看起来并没有使用表格......) –

回答

1

pog.DBKeyGROUP BY

另外,我认为你错过了一个连接条件。您对表pro没有加入条件。

最后,应该不需要DISTINCT