2016-09-28 3 views
0

У меня есть две несвязанные таблицы (таблица A и таблица B), к которой я хотел бы присоединиться, чтобы создать уникальный список пар двух. Таким образом, каждая строка в таблице A будет соединяться с каждой строкой в ​​таблице B, создавая список уникальных спариваний между двумя таблицами.Регион данных SSRS 2008 R2, внедренный в другой регион данных

Моих идеи, что можно сделать:

  1. Я могу либо сделать это в запросе (SQL) путем создания одного набора данных и имеющие два поля, выводимыми (каждую строку, равную уникальное спаривание).

  2. Или путем создания двух разных наборов данных (по одному для каждой таблицы) и области данных, встроенной в другую область данных; каждая область данных вытягивается из другого набора данных (из двух созданных для каждой таблицы).

Я попытался реализовать второй метод, но это не позволило мне выбрать другой набор данных для внедренной области данных из родительской области данных.

Первый метод, который я не пробовал, но не понимаю, как или даже если это возможно с помощью языка SQL.

Любая помощь или руководство в этом вопросе было бы весьма полезно!

ответ

1

Первый называется cross join:

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

ли вы должны сделать это в приложении или в открытой базе данных под вопросом. Это зависит от размера таблиц и пропускной способности для базы данных - есть накладные расходы на вытягивание строк из базы данных.

Если каждая таблица имеет 2 строки, это не проблема. Если каждая таблица имеет 100 строк, то вы будете вытаскивать 10 000 строк из базы данных, и, возможно, быстрее вытащить 2 * 100 строк и выполнить цикл в приложении.

+0

Отлично, это именно то, что мне нужно! Одна из таблиц в конечном итоге получит более 100 записей через 10 или около того лет, а другая, вероятно, никогда не будет иметь более 30 (если это). Но для целей этого запроса мне потребуется всего 10 записей из каждой таблицы. Я, вероятно, буду реализовывать два CTE для каждой таблицы, а затем выполнить перекрестное объединение на этих CTE, чтобы избежать предложенной вами дилеммы. Спасибо за вашу помощь! – TheDirtyJenks

+0

@ TheDirtyJenks. , , Возвращение 3000 строк не должно быть проблемой. Подумайте, что произойдет, если в двух таблицах будут тысячи строк. –

Смежные вопросы