Привет, интересно, может ли кто-нибудь помочь мне с этим запросом. У меня есть набор данных, в котором у меня есть два столбца. Колонка A/Столбец B; позволяет называть его таблицей UpdateData.Отображение двух разных столбцов в запросе SQL
Существует также две таблицы доступа с постоянными данными, которые являются таблицами отображения для этих кодов. Одна таблица - это коды предварительного обновления (oldCodes), а другая - коды обновления после системы (NewCode). В моем наборе данных столбец A имеет коды с обновлением, а в столбце B указаны коды после обновления. Моя идея состояла в том, чтобы объединить эти две таблицы доступа старые и новые коды в одну таблицу в SQL Server (2005), как это создать таблицу combinedCodes:
Oldcode display
===== =======
RTYX45 No
GHYUN6 No
BYUER5 Yes
Newcode display
===== =======
VUJNG6 Yes
LERWS8 No
XCRYU7 Yes
code display
===== =======
RTYX45 No
GHYUN6 No
BYUER5 Yes
VUJNG6 Yes
LERWS8 No
XCRYU7 Yes
Примечание это только пример данных, и есть намного больше строк, чем отображается.
Так что, если я присоединяюсь к updateData и комбинированным кодам, как мне установить его так, чтобы одно поле (дисплей) отображало соответствие из столбца A/B (или нет). Когда я присоединился только к одному столбцу, можно сказать, что столбец A с левым соединением в мою таблицу updateData из таблицы combinedCodes. Я получил правильные данные в поле отображения комбинированных кодов и значения null для тех, которые не совпадали.
Но затем я ввел еще одно соединение из столбца B, используя левое соединение, в мою таблицу UpdateData из CombinedCodes, а на дисплее объединенного кода были показаны старые коды, где до нулей были, что я хотел бы, но также показывались старые коды, где до того, как новые коды были используемый. Я немного перепутал с тем, что на самом деле происходит, поэтому это может быть не на 100% правильно, однако при сравнении каждого результата запроса с индивидуальным объединением результатов запроса с объединениями в столбец А и столбец В были разными, хотя одинаковое количество данных при добавлении индивидуальный счет из отдельных запросов.
select c.Fields
--,f.Display
,pt.Display
from UpdateData c
INNER JOIN PRE_CODES pt
ON c.columnA = pt.code -- only for pre-codes
--INNER JOIN POST_CODES f
--ON c.columnB = f.code
Объединение и поле прокомментированы для посткодов, а другое предназначено для предварительного кодирования. Если я включаю левое внешнее соединение для отображения нулей для пост-кодов, тогда введем 2-ое соединение и f.display плюс левое соединение для поля, оно не покажет те же результаты, что и я, каждый раз, когда я запускаю их каждый и объединяю их.
этот вид присоединиться выходит за пределы моего понимания присоединяется и я не знаю точно, что я должен здесь делать так по любому из вас, кто может помочь мне с этим
Благодарности
Эндрю
Эй, +1 для гораздо лучшего ответа, чем обычный сверхлитеральный сборник! Хороший вопрос. – criticalfix
@ JacobM конечно (удары лоб ладонями) союз действительно хороший вариант! Не использовал SQL некоторое время и полностью забыл об этом! Другой вариант был на полпути тому, что я делал, но вы предоставили решение для отображения каждого результата столбца, а затем их объединения.Кроме того, я также пытался понять логику/подход двух объединений к одной таблице/отображению результатов в одном столбце, это не то, что мне приходилось делать вообще, так что это интересная проблема. – Andrew
@JacobM благодарит за решение – Andrew