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

Откуда:
Сообщений: 80
insert into @изменения_индекса
select isin, price
from INDARB.dbo.prices_morning
where isin in ('RTS_Basis','RTS-9.11','Si-9.11')


Я хочу вместо 'RTS-9.11'
подставлять данные из вот этой таблички

select V from s where n = 'fut_rts'

как это лучше реализовать?
спасибо
7 июл 11, 13:23    [10938445]     Ответить | Цитировать Сообщить модератору
 Re: переменные в where  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
EXISTS
7 июл 11, 13:24    [10938456]     Ответить | Цитировать Сообщить модератору
 Re: переменные в where  [new]
Glory
Member

Откуда:
Сообщений: 104751
http://www.firststeps.ru/sql/r.php?8
7 июл 11, 13:24    [10938461]     Ответить | Цитировать Сообщить модератору
 Re: переменные в where  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
kpacaba, используйте JOIN
7 июл 11, 13:24    [10938462]     Ответить | Цитировать Сообщить модератору
 Re: переменные в where  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
kpacaba
insert into @изменения_индекса
select isin, price
from INDARB.dbo.prices_morning
where isin in ('RTS_Basis','RTS-9.11','Si-9.11')


Я хочу вместо 'RTS-9.11'
подставлять данные из вот этой таблички

select V from s where n = 'fut_rts'

как это лучше реализовать?
спасибо
]
insert into @изменения_индекса
select isin, price
from INDARB.dbo.prices_morning
where isin in (SELECT 'RTS_Basis' UNION ALL SELECT 'Si-9.11' UNION ALL SELECT V FROM s WHERE n = 'fut_rts')
???
7 июл 11, 13:30    [10938529]     Ответить | Цитировать Сообщить модератору
 Re: переменные в where  [new]
kpacaba
Member

Откуда:
Сообщений: 80
Я вот так сделал
insert into @изменения_индекса
select isin, price
from INDARB.dbo.prices_morning
where isin in ('RTS_Basis',(select V from s where n = 'fut_rts'),(select V from s where n = 'fut_usd'))

получилось, сенкс
7 июл 11, 13:35    [10938583]     Ответить | Цитировать Сообщить модератору
 Re: переменные в where  [new]
kpacaba
Member

Откуда:
Сообщений: 80
а вот в этом случае, это не прокатывает

insert into @изменения_индекса SELECT  'fRTS_Morning' isin,
        MAX(CASE WHEN isin = 'RTS-9.11' THEN price
            END) * 0.02 * MAX(CASE WHEN isin = 'Si-9.11' THEN price
                       END) /1000.0 price
FROM    @изменения_индекса
WHERE   isin IN ( (select V from s where n = 'fut_usd'), (select V from s where n = 'fut_rts') )


Если я на место 'RTS-9.11' подставляю как в примере выше, выдает ошибку

Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
7 июл 11, 13:44    [10938654]     Ответить | Цитировать Сообщить модератору
 Re: переменные в where  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
kpacaba,

откуда следует, что подзапросы, которые Вы запихнули в список IN(), возвращают 0 или 1 запись?
7 июл 11, 13:56    [10938795]     Ответить | Цитировать Сообщить модератору
 Re: переменные в where  [new]
kpacaba
Member

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

откуда не знаю, но все работает как надо
7 июл 11, 14:05    [10938888]     Ответить | Цитировать Сообщить модератору
 Re: переменные в where  [new]
kpacaba
Member

Откуда:
Сообщений: 80
CASE WHEN isin = 'RTS-9.11' THEN price
Ну так как здесь, сделать запрос вместо 'RTS-9.11'?
7 июл 11, 14:14    [10938989]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить