2015-10-28 28 views
0

我必須對Access 2010數據庫執行查詢以提取每個團隊的以前的積分結果。使用單個表格查詢訪問以計算以前的購物車結果數據庫

我有上籃

The table is like this : 
Table Name = History 
ID Auto Increment 
Date : datetime 
Host : text 
Guest: text 
HostPoint:integer 
GuestPoint:inetger 

歷史比賽結果的單個表的表中的數據是這樣的:

1  01/02/2015  BARCELONA  REAL MADRID  105 80 
5  25/01/2015  BARCELONA  LAS PALMAS  65 73 
7  24/01/2015  BARCELONA  JUVENTUS  80 75 
10  15/01/2015 VALENCIA  REAL MADRID  101 120 
11  14/01/2015 TOLEDO  REAL MADRID  101 100 
15  14/01/2015 BARCELONA  PSG    105 60 
18  11/01/2015 GALA   REAL MADRID  101 70 

我想生成一個表或查詢的每一條記錄,在前三場比賽中,每隊在主場和主客場的比賽中的最小和最大成績。

表是這樣的:

Table Name = HistoryResult 
ID Auto Increment 
Date : datetime 
Host : text 
Guest: text 
HostPoint:integer 
GuestPoint:inetger 
MinHostHomePoint:integer 
MaxHostHomePoint:integer 
MinGuestAwayPoint:inetger 
MaxGuestAwayPoint:inetger 

例如,對於第一個記錄其結果必然是這樣的:

1  01/02/2015  BARCELONA  REAL MADRID  105 80 65 105 70 120 
5  25/01/2015  BARCELONA  LAS PALMAS  65 73 80 105 0 0 
7  24/01/2015  BARCELONA  JUVENTUS  80 75 105 105 0 0 
10  15/01/2015 VALENCIA  REAL MADRID  101 120 0 0  70 100 
11  14/01/2015 TOLEDO  REAL MADRID  101 100 0 0  70 70 

我認爲我必須使用別名,也子查詢,但我已嘗試解決問題的不同解決方案

回答

0

請嘗試以下操作:

SELECT History.ID, History.MatchDate, History.Host, History.Guest, History.HostPoint, History.GuestPoint, qryHomeMinMaxPoints.MinOfPoints AS MinHostHomePoint, qryHomeMinMaxPoints.MaxOfPoints AS MaxHostHomePoint, qryAwayMinMaxPoints.MinOfPoints AS MinGuestAwayPoint, qryAwayMinMaxPoints.MaxOfPoints AS MaxGuestAwayPoint FROM (History INNER JOIN (SELECT Team, Min(Points) AS MinOfPoints, Max(Points) AS MaxOfPoints FROM (SELECT MatchDate, Team, Points FROM (SELECT History.MatchDate, History.Host AS Team, History.HostPoint AS Points FROM History) AS qryHomeMatches WHERE MatchDate In (SELECT TOP 3 MatchDate FROM (SELECT History.MatchDate, History.Host AS Team, History.HostPoint AS Points FROM History) as qryHomeMatchesCopy WHERE qryHomeMatchesCopy.Team = qryHomeMatches.Team ORDER By MatchDate DESC)) AS qryHomeLastThree GROUP BY Team) AS qryHomeMinMaxPoints ON History.Host=qryHomeMinMaxPoints.Team) INNER JOIN (SELECT Team, Min(Points) AS MinOfPoints, Max(Points) AS MaxOfPoints FROM (SELECT MatchDate, Team, Points FROM (SELECT MatchDate, Guest AS Team, GuestPoint AS Points FROM History) AS qryAwayMatches WHERE MatchDate In (SELECT TOP 3 MatchDate FROM (SELECT MatchDate, Guest AS Team, GuestPoint AS Points FROM History) as qryAwayMatchesCopy WHERE qryAwayMatchesCopy.Team = qryAwayMatches.Team ORDER By MatchDate DESC)) AS qryAwayLastThree GROUP BY Team) AS qryAwayMinMaxPoints ON History.Guest=qryAwayMinMaxPoints.Team; 
+0

您好,感謝幫助,但它給我一個錯誤:語法錯誤在FROM子句在最後: GROUP BY隊) –

+0

檢查字段名和括號,下面的鏈接包含樣本文件查詢工作正常:http://1drv.ms/1MilZYH –

+0

感謝這工作得很好! 但與我的數據庫,是非常非常緩慢,也過濾只有今天比賽,它需要超過一個小時tu運行:( 而且我需要運行一個整月 –

相關問題