2017-08-27 56 views
0

我有一個訪問數據庫,其中有幾個表中的地址信息。 我創建了一條SQL語句,用於在查詢中獲取組合信息,並且工作正常。訪問SQL:只選擇在組合字段中出現一次的記錄

我的下一步將是隻獲得記錄在db中只有一個事件,但我似乎無法讓它工作。

到目前爲止我的代碼將返回:(例子)

combination lat/long postal_code letter_part house_number street name 
123123    1234  aa   1   teststreet 
123124    1234  aa   3   teststreet 
123124    1234  aa   5   teststreet 
123124    1234  aa   7   teststreet 
123124    1234  aa   9   teststreet 
123125    1234  aa   5   teststreet 

我想,因爲他們的組合式只發生一次只提取第一和最後一個記錄。 Combi字段在最終結果中不需要,只是一種嘗試使其發揮作用的方法。

我的代碼:

SELECT 
[Perceel.lengtegraad] & [Perceel.breedtegraad] As Combi, 
Pcreeks.wijkcode, 
Pcreeks.lettercombinatie, 
[huisnr] & " " & [huisnr_bag_letter] & " " & [huisnr_bag_toevoeging] AS 
HnrLetter, 
Straat.straatnaam 
FROM 
(Provincies 
INNER JOIN (Plaats 
INNER JOIN ((Gemeente 
INNER JOIN Pcreeks 
ON 
Gemeente.gemeenteid = Pcreeks.gemeenteid) 
INNER JOIN Perceel 
ON 
Pcreeks.reeksid = Perceel.reeksid) ON (Gemeente.gemeenteid = 
Plaats.gemeenteid) AND (Plaats.gemeenteid = Pcreeks.gemeenteid) AND 
(Plaats.plaatsid = Pcreeks.plaatsid)) ON Provincies.provincicode = 
Pcreeks.provinciecode) INNER JOIN Straat ON (Pcreeks.straatid = 
Straat.straatid) AND (Plaats.plaatsid = Straat.plaatsid) 
where Pcreeks.wijkcode = "1234" AND Pcreeks.lettercombinatie = "AA"; 

任何幫助,將不勝感激

+0

'Perceel'表的主鍵是什麼? 你試過GROUP BY/HAVING嗎? – filiprem

+0

嗨,感謝您的回覆。 perceel的主要關鍵是感知。當我通過什麼都沒有發生的事情發生時,如果我放入有訪問權限給我一個錯誤(srry,真正的noob在這裏:) –

回答

0

這不是最優雅的,但你可以重複相同的查詢過濾使一個元素只組。

WHERE Combi IN (
    SELECT Combi FROM (<PASTE_YOUR_QURY_HERE>) AS something 
    GROUP BY Combi 
    HAVING count(*) = 1 
) 

PS。這也不利於性能 - 您應該修改子查詢以刪除不必要的連接)。

+0

好吧,我試圖簡化這個讓我的頭圍繞它...這個代碼: SELECT COUNT([Perceel.lengtegraad] [Perceel.breedtegraad])AS aantal,Pcreeks.wijkcode,Pcreeks.lettercombinatie, [Perceel.lengtegraad] [Perceel.breedtegraad] AS的Combi FROM Perceel INNER JOIN Pcreeks ON Perceel.reeksid = Pcreeks.reeksid WHERE(((Pcreeks.wijkcode)= 「1234」)AND ((Pcreeks.lettercombinatie)= 「AA」)) GROUP BY Pcreeks.wijkcode,Pcreeks.lettercombinatie, Perceel。 breedtegraad,Perceel.lengtegraad HAVING(((Count(Perceel.breedtegr AAD))<2)); –

+0

現在我得到一個地址,但是如果我添加一個字段,它將返回到1234AA範圍內的所有地址。 –

相關問題