2017-01-23 130 views
1

我需要限制查询的结果,以便它只在ID的行总数小于4时取得结果,并且我不确定如何在不丢失select语句列的情况下执行此操作。使用计数限制查询结果

select fje.journalID, fjei.ItemID, fjei.acccount, fjei.debit, fjei.credit 
from JournalEntry fje 
inner join JournalEntryItem fjei on fjei.journalID = fje.journalID 
inner join JournalEntryItem fjei2 on fjei.journalID = fjei2.journalID and 
     fjei.ItemID != fjei2.ItemID 
order by fje.journalID 

所以,如果journalID 1有5条线路,它应该被排除,但是如果它有4条线,我应该看到它在我的查询。只需要一个正确的方向。谢谢!

+0

微调:SELECT COUNT(journalId)...的GroupBy(场)......具有计数(journalId)<5点 – Forklift

+0

它不是作为第三'JOIN'是服务什么目的明确。你似乎没有在任何地方使用它。 – apokryfos

+0

我正在尝试查找日记帐分录项目重复项。如果有另一种更有效的方式,我很乐意学习它! – Michelle

回答

1

具有别名的子查询有许多名称,但它实际上是一个表。在你的情况下,你会做这样的事情。

select your fields 
from your tables 
join (
select id, count(*) records 
from wherever 
group by id) derivedTable on someTable.id = derivedTable.id 
    and records < 4