2015-05-12 100 views
1

我正在尝试编写一个脚本来计算基于2个字段匹配的结果 - 但不匹配像相同,但值在整个表中重新出现的位置。例如,我想分别找到场A和场B = x & y(并对这些结果进行计数),但是场A并不总是X而场B也不总是Y.而且,场A和B字段值是未知的。这是我迄今写的:计数并返回2个字段匹配

select a.fielda, b.fieldb, count (*) 
from tableA a 
join tableB b 
on a.fieldd = b.fieldd 

where a.fielda = b.fieldb --I know this is a problem, just for notes on what I'm trying to accomplish. 
group by b.fieldb, a.fielda 
order by b.fieldb. 

我是一个新手,所以任何帮助将不胜感激。先谢谢你。

+1

一些样本数据和预期结果会使这个更清晰。 – jarlh

+0

只需删除'wherea.fielda = b.fieldb'line。根据你所描述的内容,剩下的应该是正确的查询。 – Tobsey

+0

托比,你是对的。我不认为通过选择这两个领域,我已经找到那些价值相同的记录。谢谢!!!!! – DJDJ23

回答

0

Tobsey对我而言是正确的。我想,通过选择两个领域,我已经找到了这两个领域一起存在的记录......我猜,脑屁。感谢您的帮助!

0
SELECT SUM(CASE WHEN a.fielda = b.fieldb THEN 1 ELSE NULL END) AS MatchCount 
    , SUM(CASE WHEN a.fielda = x and b.fieldb = y THEN 1 ELSE NULL END) AS XYCount 
    , COUNT(*) AS FieldDMatchCount 
FROM tableA a 
JOIN tableB b 
    ON a.fieldd = b.fieldd 
相关问题