2014-02-16 106 views
0

我已經整理一個訪問表兩個日期之間獲取數據,比如:1月1日之間,以1月31日SQL - 訪問 - VBA

 
SellingID1 iTemID 1 ItemInTime11/01/2011 01:05:00 ItemOutTime11/01/2011 02:05:00 
SellingID2 iTemID 1 ItemInTime11/01/2011 02:05:00 ItemOutTime11/01/2011 02:15:00 
SellingID3 iTemID 1 ItemInTime11/01/2011 02:05:00 ItemOutTime11/01/2011 03:45:00 
SellingID4 iTemID 2 ItemInTime15/01/2011 02:05:00 ItemOutTime15/01/2011 03:05:00 
SellingID5 iTemID 2 ItemInTime15/01/2011 02:05:00 ItemOutTime15/01/2011 03:15:00 

我有多個記錄中的這個日期,但我需要通過一個ItemID對它們進行分組,可能有多於3條記錄具有相同的itemID,但我需要這些記錄中的最短時間和最長時間,並且只輸出一次ItemID,但時間應計算在單獨的查詢。

 
1 iTemID 1 ItemInTime 11/01/2011 01:05:00 ItemOutTime 11/01/2011 02:05:00 
2 iTemID 1 ItemInTime 11/01/2011 02:05:00 ItemOutTime 11/01/2011 02:15:00 
3 iTemID 1 ItemInTime 11/01/2011 02:05:00 ItemOutTime 11/01/2011 03:45:00 

以上三個數據應合併爲一個如下。

 
iTemID 1 ItemInTime 11/01/2011 01:05:00 ItemOutTime 11/01/2011 03:45:00 

任何指導將真誠讚賞。提前致謝。

回答

0

您是否正在尋找?

SELECT ItemID, MIN(ItemInTime) ItemInTime, MAX(ItemOutTime) ItemOutTime 
    FROM table1 
GROUP BY ItemID; 

這裏是SQLFiddle演示


在運行時發現的最小最大值後,有沒有辦法,我可以找出這些MAXTIME和mintime之間的區別.. 。對於每個ITEM?

使用DATEDIFF()函數,該函數

SELECT ItemID, MIN(ItemInTime) ItemInTime, MAX(ItemOutTime) ItemOutTime, 
     DATEDIFF("s", MIN(ItemInTime), MAX(ItemOutTime)) DiffInSec 
    FROM table1 
GROUP BY ItemID; 

這裏是SQLFiddle演示

+0

感謝您的答覆。有效。但是,我有一個後續問題......在運行時間中找到最小值最大值後,是否有一種方法可以找出這些最大值和最小值之間的差異...對於每個ITEM? ... 真的很感謝你的努力......謝謝。 – user3315282

+0

你很受歡迎。查看更新的答案。 – peterm

+0

非常感謝解決方案。 – user3315282