2017-02-10 59 views
0

下面的代碼包含兩個與存檔表中的外鍵綁定的左連接。我試圖創建一個報告,我可以將「FilledBy」拆分爲單獨的列,如圖像。 'FilledBy'包含Docline,OCLC和In House等類別,並且報告按每個部門對Journal Title進行分組。使用左連接拆分多個計數以用於報表使用DLookup

enter image description here

,對於表中提取數據的查詢使用以下代碼。 FilledBy是數據分組的方式之一。如果我使用按報告功能分組的訪問權限將其分解爲FilledBy類別,則無法將所有內容保留在一行中。 (如果有任何方法,請告訴我!)它希望將這些類別作爲另一列放置,這對於此報告而言效率不高。

SELECT Count(ArchiveTable.ArchiveID) AS TotalRQ, ArchiveTable.ISSN, _ 
     PatronDatabase.Department, JournalTable.JournalTitle, ArchiveTable.FilledBy 
FROM (ArchiveTable _ 
LEFT JOIN PatronDatabase ON ArchiveTable.PatronID = PatronDatabase.PatronID) _ 
LEFT JOIN JournalTable ON ArchiveTable.ISSN = JournalTable.ISSN 
WHERE (((DatePart("yyyy",[RequestDate]))=2016) AND ((PatronDatabase.PatronType)="Staff") _ 
AND ((ArchiveTable.FolderStatus)="Filled")) 
GROUP BY ArchiveTable.ISSN, PatronDatabase.Department, JournalTable.JournalTitle, _ 
     ArchiveTable.FilledBy; 

有沒有辦法讓小計填寫?我在報告中的未綁定字段中嘗試了DLookup。它給了我一大堆1。

= DLookup("[TotalRQ]", "QryJournalRQbyDept", "ISSN = " & Reports![NRpt]![ISSN] _ 
AND "Department = " & Reports![NRpt]![Department] _ 
AND "FilledBy = OCLC") 
+0

「'FilledBy'有什麼類別Docline,OCLC和In House」是什麼意思? FilledBy似乎是ArchiveTable的一列。你的意思是,FilledBy可以具有「Docline」,「OCLC」或「內部」的值? – Ami44

+0

是的,這是正確的。值可以有這三個結果,Docline,OCLC或內部的 – Stardance

+0

可能使用'iif(FilledBy ='Docline',1,0)'類型的語法,然後在報告中總結該字段? – GavinP

回答

0

我想通了。

我創建了三個新的查詢(每個類別一個,Docline,OCLC,In House),計算按部門和ISSN分組的小計。

然後,我創建了第四個查詢,使用此代碼將結果串在一起。我已經取代以「A」,「B」,「C」的實際查詢名稱澄清:

SELECT DISTINCT a.ISSN, a.JournalTitle, a.Department, 
    (SELECT SUM(DoclineRQ) FROM b WHERE a.ISSN = b.ISSN _ 
     AND a.Department = b.Department) AS DoclineTotal, _ 
    (SELECT SUM(OCLCRQ) FROM c WHERE a.ISSN = c.ISSN _ 
     AND a.Department = c.Department) AS OCLCTotal, _ 
    (SELECT SUM(InHouseRQ) FROM d WHERE a.ISSN = d.ISSN _ 
     AND a.Department = d.Department) AS DocDelTotal, _ 
    Nz([DoclineTotal])+Nz([OCLCTotal])+Nz([InHouseTotal]) AS TotalRQ 
    FROM a; 

現在我可以配合報告的最終查詢,它會工作。

感謝Boyd P,他回答了我在9個月前爲代碼的整體結構提出的類似問題。我意識到我可以添加額外的標準(AND語句),並將其更改爲SUM並且它可以工作。