2012-07-03 495 views
-1

我有一個包含我需要過濾數據的查詢結果集,然而,濾波數據被包含在另一個表中,此外該濾波表被鏈接到包含的分組的另一個表過濾器。更進一步的分組表包含可能爲空的字段,我需要忽略這些字段。我也需要按組表分組結果。任何關於這個問題的最佳方法的想法?過濾查詢結果與另一查詢結果

開始數據TABLE

MYID NAME ADDRESS  AGE 
1  FRED 123 SECOND ST 12 
2  JILL 321 FIRST ST 6 
3  JOE  54 THIRD ST 4 

過濾表

--Group: table that is keyed via xref to Set table 
GROUP_ID AGEFROM AGETO MYID 
1  3   7  NULL 
2  NULL  NULL  2 


--Set: table that is xrefed to group table 
SET_ID NAME 
5  SET1 
6  SET2 

--Xref: table connecting Set and Group 
SET_ID GROUP_ID 
5   1 
5   2 
6   1 

期望的輸出通過查詢開始數據表,可以使用過濾表作爲過濾條件

SET  GROUP  NAME AGE ID  ADDRESS 
5  1   JILL 6  NULL 321 FIRST ST 
5  1   JOE  4  NULL 54 THIRD ST 
5  2   JILL NULL 2  321 FIRST ST 
6  1   JILL 6  NULL 321 FIRST ST 
6  1   JOE  4  NULL 54 THIRD ST 

要重申我需要: 我需要輸出由所述組表內容過濾,然後通過考慮在羣組表考慮可能的空值以及數據的範圍的設定表進行分組的第一表的結果。合理?

什麼是實現這一結果的最佳方法?


謝謝您的建議。我有點困惑,爲什麼我的請求被認爲是不完整的,並有負面的標記...我提供了包含要過濾的數據的表格示例,然後提供了其他三個包含過濾數據的表格。我甚至後來提供了預期產出。我試圖獲得一些幫助,以便能夠過濾/搜索數據庫,並使用過濾數據庫作爲過濾數據的期望輸出的標準。我認爲這裏有很棒的SQL人可以幫助我。我有點困惑,響應

+2

嚴重的是,你需要明確你需要什麼。顯示的輸出應該是什麼的例子,所以我們可以有一個更好的瞭解你想 – Lamak

+0

同意,這將是有例如與實例結果過濾器大大有用的東西。我想你需要爲Set設置一個過濾器,併爲該組建立一個過濾器,然後顯示匹配它們的結果。我想這就是你的意思,但是寫下答案還不夠清楚。 – daniloquio

+0

我更新了應用過濾器的預期結果的問題。這有幫助嗎? – Edd

回答

0

您需要使用一些連接,這樣的事情:

SELECT SetTbl.SetID, GroupTbl.GROUP_ID, ResultsTbl.Name, ResultsTbl.Age, ResultsTbl.Address, GroupTbl.MYID 
FROM ResultsTbl INNER JOIN GroupTbl 
     ON (ResultsTbl.MYID = GroupTbl.MYID OR ResultsTbl.AGE BETWEEN GroupTbl.AGEFROM AND GroupTbl.AGETO) 
    INNER JOIN SetTbl 
     ON GroupTbl.GROUP_ID = SetTbl.GROUP_ID 

你的問題是不明確的,所以我不能肯定這是一個答案說。請在使用計算器時採取以下建議:

  • 失去「先謝謝您的幫助!」線,這是很好,但不屬於這裏。
  • 你應該嘗試解決問題,然後來解釋計算器你試過,你有什麼具體的問題

一般而言,您應該查看常見問題解答並非常重視其準則。這樣,stackoverflow將對你和其他人最有用。 https://stackoverflow.com/faq

+0

感謝您的回覆!這個答案引導我朝着正確的方向前進。如果表沒有外鍵,我的困惑就是在哪裏加入。使用範圍上的連接幫助我解決了問題。謝謝! – Edd