2011-08-12 32 views
1

我有最艱難的時間獲取此方案創建的查詢一一列舉:

查詢發現按時發貨的零件,並通過季度

我需要列出遲到所有部件,並通過總結四分之一它們。

這裏是我迄今爲止查詢:

SELECT DISTINCTROW 
    Format$([InvoiceSub].[Date_Shipped],'\Qq yyyy') AS [Date_Shipped By Quarter] 
, Sum(InvoiceSub.Quantity) AS [Sum Of Quantity] 
FROM 
    InvoiceSub 
    INNER JOIN 
     Job_Book_Sub 
     ON (InvoiceSub.[Job #] = Job_Book_Sub.[Job #]) 
     AND (InvoiceSub.[LineItem#] = Job_Book_Sub.[LineItem#]) 
GROUP BY 
    Format$([InvoiceSub].[Date_Shipped],'\Qq yyyy') 
, Year([InvoiceSub].[Date_Shipped]) * 4 + DatePart('q', [InvoiceSub].[Date_Shipped]) -1; 


此查詢工作正常顯示按季度裝運的所有部件。但是,我想查看每季度發貨的所有部件。


我在名爲Job_Book_Sub的表中有一個字段,該字段是[LineItem_DueDate]。我想在查詢中使用它,以便它顯示所有遲到的部分([date_shipped]> [lineitem_duedate])。 [date_shipped]是零件發貨的實際日期,[lineitem_duedate]是零件到期日期。我知道我需要將這兩個字段合併到查詢中,我只是不知道如何。

有人可以告訴我該怎麼做嗎?如果我將[LineItem_DueDate]添加到查詢中,那麼它不再按季度總結日期,而是列出每條記錄(所以不是在過去的10多年中有45條記錄有不同的季度,而是突然有13000+記錄,因爲它列出每個記錄與查詢date_shipped

有人可以幫助請

回答

1

嘗試在WHERE條款加入您的過濾器:?

SELECT DISTINCTROW 
    Format$([InvoiceSub].[Date_Shipped],'\Qq yyyy') AS [Date_Shipped By Quarter] 
, Sum(InvoiceSub.Quantity) AS [Sum Of Quantity] 
FROM 
    InvoiceSub 
    INNER JOIN 
     Job_Book_Sub 
     ON (InvoiceSub.[Job #] = Job_Book_Sub.[Job #]) 
     AND (InvoiceSub.[LineItem#] = Job_Book_Sub.[LineItem#]) 
WHERE 
    Job_Book_Sub.[date_shipped] > Job_Book_Sub.[lineitem_duedate] 
GROUP BY 
    Format$([InvoiceSub].[Date_Shipped],'\Qq yyyy') 
, Year([InvoiceSub].[Date_Shipped]) * 4 + DatePart('q', [InvoiceSub].[Date_Shipped]) -1; 
+0

偉大的工程謝謝。 – fraXis