2014-03-19 59 views
-2

我有一個包含訂單 的發票excel工作表的每個發票具有以下數據SELECT SUM分組的記錄由計數

ID = a unique id for each ID

CUSTOMER = The name of the ID

AMT = The total value of the invoices

DATE = The date of the purchase

以下數據爲

CID  CUSTOMER AMT  DATE 
1  James   100  1/1/2012 
2  Mark   110  1/1/2012 
3  John   110  2/1/2012 
1  James   200  2/1/2012 
3  John   140  2/1/2012 
2  Mark   120  3/1/2012 

我需要從Excel工作表中選擇記錄讓我有這樣的輸出

CID  Customer INVCOUNT TotalValue 
1  James  2  300  
1  John  2  250  
1  Mark  2  230 

這是我試圖

Select 
    i.[CID], 
    i.[CUSTOMER], 
    Count(i.[CID]) as INVCOUNT, 
    sum(i.AMT) as TotalValue 
From 
    [Invoices] i 
Where 
    i.[DATE] >= #2/1/2012# And 
    i.[DATE] <= #3/1/2012# 
Group By 
    i.[CID], i.[CUSTOMER] 
Having 
    Count(i.[CID]) > 1 

PLS這是一個Excel查詢,而不是MySQL中的SQL 。我之前使用的標籤是一個錯誤。

我在做什麼錯?

+0

我想你的第一個日期檢查是不正確的......如果不是2012年1月1日? –

+0

你從這個查詢得到的結果是什麼?另外關於日期,我希望只顯示約翰,因爲其他人的日期超出了你的範圍。 –

+2

您的SQL語法對於MySQL來說不正確,看起來像T-SQL。 – Barmar

回答

1

爲了讓你指定的輸出:

Select 
    1 as CID, 
    i.[CUSTOMER], 
    Count(i.[CID]) as INVCOUNT, 
    sum(i.AMT) as TotalValue 
From 
    [Invoices] i 
Where 
    i.[DATE] >= #1/1/2012# And 
    i.[DATE] <= #3/1/2012# 
Group By 
    i.[CID], i.[CUSTOMER] 
Having 
    Count(i.[CID]) > 1 

爲了讓輸出我覺得你真的想:

Select 
    i.[CID], 
    i.[CUSTOMER], 
    Count(i.[CID]) as INVCOUNT, 
    sum(i.AMT) as TotalValue 
From 
    [Invoices] i 
Where 
    i.[DATE] >= #1/1/2012# And 
    i.[DATE] <= #3/1/2012# 
Group By 
    i.[CID], i.[CUSTOMER] 
Having 
    Count(i.[CID]) > 1 

這應該產生

CID  Customer INVCOUNT TotalValue 
1  James  2  300  
2  John  2  250  
3  Mark  2  230 
+0

如果我需要排除在您購買日期範圍內的客戶,但在此列表中排除了2012年3月7日購買的任何人,您是否可以告訴我如何? – Smith