2016-09-28 74 views
0

我有兩個無關的表(表A和表B),我想加入創建這兩個配對的唯一列表。因此,表A中的每一行都將與表B中的每一行配對,從而創建兩個表之間唯一配對的列表。SSRS 2008 R2數據區域嵌入在另一個數據區域

我的可以做些什麼的想法:

  1. 我可以通過創建一個數據集,並有兩個字段輸出(每行一個等於唯一配對)爲此查詢(SQL)。或者通過創建兩個不同的數據集(每個表一個)並將數據區嵌入到不同的數據區中;每個數據區域從不同的數據集(爲每個表創建的兩個數據集)中提取。

我已經嘗試實現第二種方法,但它不會允許我從父數據區域爲嵌入數據區域選擇不同的數據集。

第一種方法我沒有嘗試,但不明白如何或甚至可以通過SQL語言。

任何有關此事的幫助或指導將不勝感激!

回答

1

第一個被稱爲cross join

select t1.*, t2.* 
from t1 cross join 
    t2; 

你是否應該在應用程序或數據庫是值得商榷的做到這一點。它取決於表的大小和數據庫的帶寬 - 從數據庫中提取行會產生開銷。

如果每個表有2行,這是一個沒有問題。如果每個表有100行,那麼您將從數據庫中拉出10,000行,並且拉動2 * 100行並在應用程序中執行循環可能會更快。

+0

完美,這正是我需要的!其中一張桌子最終將在10年左右的時間裏獲得超過100個參賽作品,另一張桌子可能永遠不會超過30個(如果有的話)。但爲了這個查詢的目的,我只需要每個表中大約10個條目。我可能會爲每個表執行兩個CTE,然後對這些CTE執行交叉連接以避免您提出的困境。謝謝你的幫助! – TheDirtyJenks

+0

@TheDirtyJenks。 。 。返回3000行應該不成問題。試想一下,如果兩張桌子有數千行,會發生什麼。 –

相關問題