我試圖構造一個SQL語句的MS Access抓住從我們的數據庫由產品的所有銷售從未被出售給特定客戶2013年1月1日之前。我相信以下SQL語句會這樣做:獲取日期範圍之間的所有行與分日期
SELECT
Sales.CustomerID,
Min(Sales.InvoiceDate) AS MinOfInvoiceDate,
Sum(SalesDetail.StdCost) AS SumOfStdCost
FROM
Sales INNER JOIN SalesDetail
ON Sales.SalesID = SalesDetail.SalesID
GROUP BY
Sales.CustomerID
HAVING
(((Min(Sales.InvoiceDate))>=#1/1/2013#));
表銷售包含:ID,發票號碼,客戶ID和日期。 (我叫它發票,但我沒有設計它...)SalesDetail是每個發票行項目:銷售/發票ID,產品ID /數量,數量和成本
我的問題是,我將如何打破這按月進一步?任何幫助表示讚賞!
編輯: Alrighty! :)因此,這裏是從上述查詢輸出的示例:
CustomerID | MinOfInvoice | SumOfStdCost
Customer1 | 2/1/2013 | $300
我想什麼,是要表明每一張發票,它的日期(或僅僅一個月,無所謂),同時保持分組/表達式( ?)具有最小的發票日期大於2013年1月1日,如客戶的標準,以便
CustomerID | InvoiceDateMonth | StdCost
Customer1 | 2/1/2013 | $100
Customer1 | 3/15/2013 | $130
Customer1 | 4/7/2013 | $70
customer1表開始2013年1月1日之後收到的發票,所以他們應該被列出。
顧客2在2012年和2013年的發票,所以它不應該是在查詢結果中。
我真的希望這是可能的,我一直在打我的頭好幾天了,寧願跳過不必逐個檢查每個客戶在我的代碼的痛苦過程。再次)
感謝所有幫助; :(我相信使數據庫做的工作!
術語「按月進一步打破了這一點,」是PRET ty含糊不清。考慮[編輯](http://stackoverflow.com/posts/16490206/edit)你的問題,包括要應用於選擇/合併標準的你想要的結果是什麼樣子的例子,。有時候這樣做甚至會幫助你回答你自己的問題。 – 2013-05-11 13:01:03