我抬头看看我能做什么,却找不到同样的问题。
我正在使用以下SQL来尝试生成我正在寻找的结果。 我正在尝试完成一个连接或另一个函数,它允许我从左侧计数或选择右侧有匹配行的行。如果右侧有匹配的列,我只想计算一次。 我希望看看是否至少有一场比赛(并计算为1,即使它们更多)也可以计算。
这就是我想要做的。
左侧 Annual_Capture(ID)
1一些数据
2一些数据
3一些数据
右侧(年度评论)
2年度捕获ID 2的评论
2年度捕获ID 2的另一个评论
结果: 从一个选择它只会返回2的Annual_Capture(ID)。 从计数中,它将仅返回Annual_Capture(ID 2)
上的记录在我的情况下,我不断得到2而不是1。
这是我正在使用的SQL:
COUNT :
SELECT COUNT(*) FROM Annual_Capture
JOIN Annual_Comments
ON Annual_Capture.id = Annual_Comments.Record_id
where Main_AbstractNumber = 133 and Year = 2012 ;
选择
SELECT * FROM Annual_Capture INNER JOIN Annual_Comments
ON Annual_Capture.id = Annual_Comments.Record_id WHERE Main_AbstractNumber = 133
AND Year = 2012
任何帮助将不胜感激!
答案 0 :(得分:1)
select
count(distinct Annual_Capture.id)
from
Annual_Capture
inner join Annual_Comments
on Annual_Capture.id = Annual_Comments.Record_id
where
Main_AbstractNumber = 133
and Year = 2012
;
答案 1 :(得分:0)
这只返回Annual_Capture中的行,其中至少有一条注释(这是我读取你的rqmts的方式):
SELECT Annual_Capture.id, count(Annual_Comments.*)
FROM Annual_Capture JOIN Annual_Comments ON Annual_Capture.id = Annual_Comments.Record_id
WHERE Main_AbstractNumber = 133 and Year = 2012
GROUP BY Annual_Capture.id
HAVING Count(Annual_Comments.*) >= 1;