我正在最艰难的时间为此场景创建查询:
我需要列出所有迟到的部分,并按季度加总。
以下是我目前的查询:
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的每条记录。
有人可以帮忙吗?
答案 0 :(得分: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;