2012-12-04 282 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