2009-10-08 75 views
0

我有一個查詢這給像這樣修改查詢在訪問

field1 field2 field3 field4 field5 
23  gfhf ghjj  5  49 
23  ghf  jkll  6  45 
67  bnvn nmb  7  45 
89  gfh  hjj  8  78 
89  gfhg hk   9  23 

這裏結果前2點後2的記錄是那種相同。 我只想要一個基於現場4場5 即無論在現場4和區域5

我想以下結果最小值最大值

field1 field2 field3 field4 field5 
23  gfhf ghjj  5  49 
67  bnvn nmb  7  45 
89  gfh  hjj  8  78 

感謝

+0

我認爲你說的所需代碼是矛盾的。對於ID 23,您將採用Field 2的MAX(),但對於ID 89,您將獲得MIN()。這不一致。同樣對於Field3,對於ID 23,你已經採用了MIN(),但對於ID 89,採用了MAX()。如果你提供的結果真的是你想要的,我只是沒有看到任何SQL方法來獲取它,除非有一些數據遺漏,以確定是否需要給定摺疊行的MIN()或MAX()。 – 2009-10-09 01:55:20

+0

其實我不考慮場2和場3我只關注場4和場5 – tksy 2009-10-09 03:50:08

回答

2

一是建立現場4,最小值爲5區要與字段關聯的最大值1

SELECT field1, Min(field4) AS MinField4, Max(field5) AS MaxField5 
FROM Table1 
GROUP BY field1; 

此查詢保存爲,說的Query1然後再加入它重新放到表1得到的值字段2和字段3.

SELECT Query1.field1, Table1.field2, Table1.field3, Query1.MinField4, 
     Query1.MaxField5 
FROM Query1 INNER JOIN Table1 ON (Query1.field1 = Table1.field1) AND 
     (Query1.MinField4 = Table1.field4) AND 
     (Query1.MaxField5 = Table1.field5); 
+0

的每個值選擇第一行,現在這爲我完成了工作,非常感謝幫助 – tksy 2009-10-09 10:52:23

0

爲了讓您的訂單正確,您需要創建一個新的查詢,它將輸入作爲您現有的查詢。

爲了讓最簡單的調整當前的查詢,以便結果在你希望的方式排序,字段4升序然後字段5降序

從現有的查詢中創建一個新的查詢選擇所有的值

在設計這一新的查詢,右鍵單擊並添加總計 選擇組通過對FIELD1,然後首先對所有其他的人

這應該做你想做的

+0

這不會給出所有的記錄,只是根據場4和場5對它們進行排序。 – tksy 2009-10-08 13:54:06

+0

多數民衆贊成在什麼停止。他們在排序後的查詢中爲字段1 – JDunkerley 2009-10-08 14:17:40