2014-01-06 25 views
0

我基本上是有結果的網格,我有我的應用程序中的下拉菜單,過濾的「運營商」一欄。但是,在選擇某個載體時,我希望所有返回的行具有與已選擇的載體相同的dr_id。選擇行

例如,如果你看一下圖片連接它顯示我的結果網格。如果我通過運營商'ACE CALL LTD_UK'進行過濾,那麼我希望返回第27,28,29和30行,因爲dr_id是相同的。

enter image description here

感謝

回答

1

我沒有給你一個完整的解決方案,因爲我不知道數據庫模式到底是什麼,你(這是一個大的存儲過程!)。但我有一些建議/意見,您可能會發現有幫助:

我假設存儲過程當它們過濾器設置爲'ACE CALL LTD_UK'時將返回一行,如果不是,那麼這可能不是有關!

在這種情況下,我會做什麼將採取SELECT聲明並將結果放入CTE臨時表或嵌套查詢。 (我不確定你使用的是什麼SQL DBMS,看起來像MSSQL,但是你也有一個MySQL標籤供你發佈)。

一旦我有這些成果我會再在臨時表使用來自dr_id一個LEFT JOINdrm表上相同的列。從這裏開始,您將需要再次加入數據不明顯的其他表格,例如Carrier表格,然後選擇所需的列。

您可以在現有的SELECT聲明中執行所有這些操作,但是您必須多次開始連接表或使用嵌套查詢,這會變得非常混亂。然而,我選擇我發佈的解決方案的主要原因是因爲我不太瞭解存儲過程,因此我選擇了最安全的解決方案。

如果你想我的意思的例子,我會盡量提供一個。

+0

感謝您的答覆,但是當通過「CALL ACE LTD_UK」過濾,所以我不認爲這會工作的SP返回多行... 乾杯 – jeffry

+0

它仍然應該有多個行,只是,只要'dr_id'對每一行都是分開的,否則你會開始得到重複。我只是仔細看了一下你的截圖,我可以看到這是可見記錄中的情況。 – XN16

+0

感謝您的回覆,我設法用更簡單的查詢來完成。 SELECT * FROM FullResults WHERE ID =(SELECT ID FROM FullResults WHERE類型= @variable); – jeffry