根据父和日期sql计算子记录

时间:2013-05-24 13:29:39

标签: sql oracle

我正在尝试查找与父级关联的子记录数。这基于同一个表中的2列(父级的master_ref和子级的ref)。我发现的困难是只计算孩子与父母相同的date_entered。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

欢迎使用StackOverflow。你的问题没有多大帮助。 。 。样本数据和预期结果很有用。您尝试过的示例查询非常棒(显示您的努力)。表格布局很有用。

以下内容适用于您:

select parent.master_ref, COUNT(*)
from nodes parent join
     nodes child
     on child.ref = parent.master_ref
where parent.date = child.date
group by parent.master_ref;

您需要进行连接才能比较父级和子级之间的值。

答案 1 :(得分:1)

假设您有3个表:

CREATE TABLE Parents (ID INT, date_entered DATE);
CREATE TABLE Children (ID INT, date_entered DATE);
CREATE TABLE Relation (master_ref INT, ref INT);

以下select语句应该为您提供所需内容:

SELECT p.ID, COUNT(*)
FROM Parents p
JOIN Relation r
ON p.ID = r.master_ref
JOIN Children c
ON c.ID = r.ref
WHERE c.date_entered = p.date_entered
GROUP BY p.ID

SQLFiddle与该代码(没有数据):http://sqlfiddle.com/#!4/6e7d3/2/0