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

Откуда:
Сообщений: 68
Таблица 1
код точки тариф1 тариф2 тариф 3 тариф 4 тариф 5
1 10 20 46 30 54
2 12 20 42 32 56
3 10 18 40 35 50
4 15 15 40 32 50
5 12 18 40 32 54

Таблица 2
номер продажи код точки тариф ставка тарифа
1 2 тариф2 ?
2 1 тариф3 ?
3 3 тариф2 ?
4 1 тариф5 ?
5 4 тариф1 ?
6 4 тариф1 ?
7 2 тариф2 ?

Внутри таблицы 1 расположены ставки тарифа. Как заполнить вопросики в таблице 2 ?
14 сен 12, 14:09    [13164906]     Ответить | Цитировать Сообщить модератору
 Re: сопоставить таблицы  [new]
thrashead
Member

Откуда: Россия, Санкт-Петербург
Сообщений: 722
nikolay_y,
На будущее:
https://www.sql.ru/forum/actualthread.aspx?tid=127456
п.6

update t2
set t2.[ставка тарифа] = (
select top 1 t1.[тариф1]
from [Таблица 1] as t1
where t1.[код точки] = t2.[код точки]
)
from [Таблица 2] as t2
where t2.[тариф] = 'тариф1';

и т.д.
14 сен 12, 14:17    [13164976]     Ответить | Цитировать Сообщить модератору
 Re: сопоставить таблицы  [new]
thrashead
Member

Откуда: Россия, Санкт-Петербург
Сообщений: 722
thrashead,

забыл оформить )

update t2
set t2.[ставка тарифа] = (
select top 1 t1.[тариф1]
from [Таблица 1] as t1
where t1.[код точки] = t2.[код точки]
)
from [Таблица 2] as t2
where t2.[тариф] = 'тариф1';
14 сен 12, 14:18    [13164987]     Ответить | Цитировать Сообщить модератору
 Re: сопоставить таблицы  [new]
nikolay_y
Member

Откуда:
Сообщений: 68
thrashead,

и так по всем тарифам? А если их 100 штук? Никак нельзя сделать, чтобы sql сам пробегался по столбцам?
14 сен 12, 14:29    [13165065]     Ответить | Цитировать Сообщить модератору
 Re: сопоставить таблицы  [new]
thrashead
Member

Откуда: Россия, Санкт-Петербург
Сообщений: 722
nikolay_y,
Вы хотите сказать, что в "Таблице 1" может быть 100 колонок с тарифами?
"Никак нельзя сделать ... ?" Можно. Dynamic sql.

"Таблицу 1" лучше переделать:
- код точки
- тариф
- ставка

Зачем в "Таблице 2" поле "ставка"?
14 сен 12, 15:23    [13165668]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить