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

Откуда:
Сообщений: 1066
Обрисую задачу абстрактно, если 2 таблицы и мне надо их сджойнить по названию поля одной таблицы и значению поля другой таблицы, это вообще возможно?
declare @f table (operN varchar(10), operV varchar(10))
insert into @f (operN,operV) select 'operation','KTG'

declare @v table (val int, field varchar(50))
insert into @v (val,field) select '1','operN'
insert into @v (val,field) select '2','operV'


в итоге я хочу получить:
val_1val_2
operation1
KTG2
2 июл 13, 17:07    [14511908]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом :) если вообще такое возможно сделать...  [new]
Glory
Member

Откуда:
Сообщений: 104760
marvel
и мне надо их сджойнить по названию поля одной таблицы

Вы хотите соединять таблицы по неизвестному имени поля ?
Иначе что вам мешает для данного примера указывать ON field = 'operN' ?
2 июл 13, 17:12    [14511936]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом :) если вообще такое возможно сделать...  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
возможно все ,но идея -бред
2 июл 13, 17:13    [14511941]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом :) если вообще такое возможно сделать...  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
select u.val, v.val
from @f 
unpivot(val for field in (operN, operV))u
join @v v on v.field=u.field
2 июл 13, 17:16    [14511969]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом :) если вообще такое возможно сделать...  [new]
marvel
Member

Откуда:
Сообщений: 1066
Cygapb-007
select u.val, v.val
from @f 
unpivot(val for field in (operN, operV))u
join @v v on v.field=u.field


а почему в базе мастер этот запрос выполняется а в какой то мною созданной пишет:
Incorrect syntax near 'val'.
2 июл 13, 17:40    [14512136]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом :) если вообще такое возможно сделать...  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
marvel
Cygapb-007
select u.val, v.val
from @f 
unpivot(val for field in (operN, operV))u
join @v v on v.field=u.field



а почему в базе мастер этот запрос выполняется а в какой то мною созданной пишет:
Incorrect syntax near 'val'.

потому,что уровень совместимоти БД пользовательской у вас стоит меньше чем версия сервера
2 июл 13, 17:41    [14512153]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом :) если вообще такое возможно сделать...  [new]
Glory
Member

Откуда:
Сообщений: 104760
marvel
а почему в базе мастер этот запрос выполняется а в какой то мною созданной пишет:
Incorrect syntax near 'val'.

Уровень совместимости вашей базы меньше 9.0
2 июл 13, 17:42    [14512159]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом :) если вообще такое возможно сделать...  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
select case v.field 
   when 'operN' then f.operN 
   when 'operV' then f.operV
   end val_1, v.val
from @v v
cross join @f f
2 июл 13, 17:48    [14512237]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить