2017-07-10 42 views
1

我看到這樣的畫面與我的兩列:Access 2000 SQL中的數字範圍組?

group by access 2000

「povrsina」是平方米麪積。它可分爲範圍,例如(0 < povrsina < = 10),(10 < povrsina < = 30),(30 < povrsina < = 60)等...

「tipprod」 可以具有文本值像「01」,「05」,「09」,「04」等...

我需要將我有「povrsina」,但在給定的範圍內的所有數據。 我在訪問它看起來像這樣創建的輔助表:

group by access 2000

你可以看到的範圍。我用我的主表嘗試過,但我不確定我是否得到正確的結果。它是否真的在我的幫助表中檢查「povrsina」值的範圍?

如何在Access 2000中執行此操作?

回答

2

您可以添加兩個字段與povrsina_min,povrsina_max引導你表定義你的範圍:

povrsina_tag|povrsina_min|povrsina_max 
10   |0   |10 
30   |11   |30 
.... 

然後你可以使用CROSS JOIN對您的導遊表進行查詢,然後添加 povrsina < = povrsina_max和povrsina> = povrsina_min

然後你可以GROUP BY povrsina_tag和tipprod。

+0

這可能是一個更乾淨的解決方案,它不涉及'VBA' – Vityata

+0

從技術上來說,CROSS JOIN在Access 2000中不存在,但以下是如何用純SQL獲得它:https://stackoverflow.com/questions/1231676/如何使用的交叉連接式訪問 – Vlad

1

只是猜測...你可以嘗試這樣的事情嗎?

select MainTable.Povishnina as [Povishnina], count(*) as [number of occurences] 
from (
    select case 
    when score between 0 and 10 then ' do 10 m2' 
    when score between 30 and 50 then ' od 11 do 30 m2' 
    else 'Nad 3000 m2' 
    from scores) MyTable 
group by MainTable.Povishnina 

在一般情況下,看看這個問題: In SQL, how can you "group by" in ranges?

1

在Access查詢,你可以使用:

Select 
    *, 
    (Select Top 1 T.PovrsinaM2 From T13_Povrshina As T 
    Where T.povrsina <= YourTable.povrsina 
    Order By T.povrsina Desc) 
From 
    YourTable 

你將不得不稍微調整T13_Povrshina。