У меня есть 3 таблицы, которые я хочу объединить, каждая из которых имеет свой интересующий столбец. У меня также есть переменная id, которую я хочу сделать отдельным слиянием "внутри" id. Идея состоит в том, что я хочу объединить X, Y и Z по дате (в пределах идентификатора) и иметь пропущенные значения, если эта дата не существует для определенной переменной.
Table X:
ID Date X
1 2012-01-01 101
1 2012-01-02 102
1 2012-01-03 103
1 2012-01-04 104
1 2012-01-05 105
2 2012-01-01 150
Table Y:
ID Date Y
1 2012-01-01 301
1 2012-01-02 302
1 2012-01-03 303
1 2012-01-11 311
2 2012-01-01 350
Table Z:
ID Date Z
1 2012-01-01 401
1 2012-01-03 403
1 2012-01-04 404
1 2012-01-11 411
1 2012-01-21 421
2 2012-01-01 450
Desired Result Table:
ID Date X Y Z
1 2012-01-01 101 301 401
1 2012-01-02 102 302 .
1 2012-01-03 103 303 403
1 2012-01-04 104 . 404
1 2012-01-05 105 . .
1 2012-01-11 . 311 411
1 2012-01-21 . . 421
2 2012-01-01 150 350 450
Есть идеи, как написать этот оператор SQL? Я пытался возиться с «полными объединениями» и «где» для перекрестных продуктов, но продолжаю получать дублированные значения для некоторых из моих комбинаций ID-даты или иногда без идентификатора.
Любая помощь будет оценена.