Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите разобраться с left join  [new]
nevesna
Member

Откуда:
Сообщений: 16
Доброго времени суток,
есть две таблицы :
GeocodeAddresses--------------------------------------------Adress
DR|POL|ALL_STREET|X3|Y3--------------------------POL| AGE| X_1|Y_1|ADRESS

нужно получить все данные из первой таблицы, удовлетворяющие условию, а тем кот. не соответствуют присвоить null. подскажите что в данном запросе нужно исправить?
SELECT 
 [DR],(year(getdate())-year(dr)) F_AGE,
 F.[POL], F.[ALL_STREET], F.[X3], [Y3],
 A.[POL], А.[AGE], 
 A.[X_1], A.[Y_1], A.[ADRESS] FROM [FOM].[dbo].[GeocodeAddresses] F left join [FOM].[dbo].[adress] A
ON
 F.all_street=A.adress and 
 F.pol=A.pol and 
(year(getdate())-year(dr))=age
group by [DR],F.[POL],[ALL_STREET],[X3], [Y3], A.[POL], [AGE],[X_1], [Y_1],[ADRESS]
5 июн 09, 07:28    [7268147]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с left join  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Если вы про условие связи, то поменяйте LEFT на RIGHT и тогда из второй таблицы будет все записи, а из первой в строках несоотвествия ей будут null
С уважением, Алексей.
5 июн 09, 07:45    [7268157]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с left join  [new]
vino
Member

Откуда:
Сообщений: 1191
nevesna, уберите group by
5 июн 09, 11:12    [7268746]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с left join  [new]
nevesna
Member

Откуда:
Сообщений: 16
right join не помог, должно получиться примерно вот что:
Таблица F:
DR POL ALL_STREET X3 Y3
1900-01-01 0 Народовольческая 39 1 0
1928-05-01 1 Мира 39 14 20
1914-01-12 0 Парковый просп. 45а 0 24
1969-02-05 1 Советской Армии 11 12 14
1985-04-26 0 Линия 10-я 19 147 -250

Таблица А:
POL AGE X1 Y1 ADRESS
0 149 0 1 Народовольческая 39
1 81 2.154 10 Мира 39
0 16 3.1245 0 Линия 1-я 19

В итоге должно получиться вот что:
DRPOLALL_STREETX3Y3POLAGEX1Y1ADRESS
1900-01-01 0 Народовольческая 39 1 0 0 149 0 1 Народовольческая 39
1928-05-01 1 Мира 39 14 20 1 81 2.154 10 Мира 39
1914-01-12 0 Парковый просп. 45а 0 24 null null null null null
1969-02-05 1 Советской Армии 11 12 14 null null null null null
1985-04-26 0 Линия 10-я 19 147 -250 null null null null null
7 июн 09, 12:51    [7273794]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с left join  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
а что получается то?

для спящего время бодрствования равносильно сну
7 июн 09, 13:26    [7273827]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с left join  [new]
nevesna
Member

Откуда:
Сообщений: 16
всем спасибо получилось
8 июн 09, 07:35    [7274928]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить