2012-12-04 222 views
0

现在我有两个单独的查询来实现结果,但我想要一个查询。我正在使用MS Access。帮助SQL查询

tblJournal   tblArticle  tblStatus 
----------   ----------  --------- 
JournalID   ArticleID  ID 
JournalTitle  JournalCode  StatusName 
JournalCode   StatusID  
Cancelled(yes/no) Date 
        ArticleTitle 
        SignedDate 

查询应具有:

tblJournal.JournalTitle, 
tblJournal.JournalCode, 
Year([tblArticle].[Date]), 
Count of articles per year which have a tblArticle.SignedDate, 
Count of articles per year with tblStatus.StatusName 'Published' and tblJournal.Cancelled NO. 
+0

是什么表状态ID代表什么?日志ID或文章ID? – bonsvr

+0

@bonsvr tblArticle.StatusID => tblStatus.ID – tutu

回答

1

我想这应该是你在找什么:

SELECT 
    tblJournal.JournalTitle, 
    tblJournal.JournalCode, 
    Year([tblArticle].[Date]), 
    Count(tblArticle.SignedDate) as Tot_Articles_Year, 
    Sum(IIF((not tblJournal.Cancelled) and (tblStatus.StatusName='Published'),1,0)) as Tot_Published 
FROM 
    (tblJournal LEFT JOIN tblArticle 
    ON tblJournal.JournalCode = tblArticle.JournalCode) 
    LEFT JOIN tblStatus 
    ON tblArticle.StatusID = tblStatus.ID 
GROUP BY 
    tblJournal.JournalTitle, 
    tblJournal.JournalCode, 
    Year([tblArticle].[Date]) 
+0

是的,这看起来像它的工作。将运行更多的测试,以确保。从未想过使用Sum,我只是在看Count。谢谢! – tutu

+0

@tutu让我知道如果你有任何问题,我改变了第一笔数字(如果SignedDate为空,它将不会被计算),但我们需要使用第二计数的总和 – fthiella