Я использую SQL Server 2008 R2 для создания отчета. Отчет должен быть в определенном формате, где у меня есть одна строка из одной таблицы, затем выводятся соответствующие данные из другой, затем другая строка из первой таблицы. Пожалуйста, смотрите мой пример ниже:
Персона Таблица:
pid | lname | fname
---------------------
1 Smith John
2 Jones Doe
salary_history
pid | salary
1 500000
1 550000
1 570000
2 400000
2 450000
Желаемый вывод:
1 Smith John
1 500000
1 550000
1 570000
2 Jones Doe
2 400000
2 450000
Каждая строка в выходных данных представляет собой конкатенацию каждого значения. Так что для строки 1 и строки 2 это будет
person.pid + space(3) + person.lname + space(3) + person.fname + CHAR(13)+CHAR(10) + salary_hisory.pid + space(3) + salary_history.salary
Каждая запись в таблице персонала может содержать сотни соответствующих записей истории зарплат. И там могут быть тысячи записей.
Я могу сделать это, написав инструкцию и цикл T-SQL, но это, вероятно, неэффективно и потребует много ресурсов / времени. Возможно ли сделать это в одном утверждении? Или написание цикла - мой лучший вариант?