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

Откуда: Санкт-Петербург
Сообщений: 16
Требуется из таблицы s_item отобрать все товары "панад" и указать код.

select a.PI_SHORT_NAME,a.PI_ITEM_CODE
from Pht_Items a
where exists(
select SITEM_CODE
from Sitem b)
and a.PI_SHORT_NAME like '%панад%'
group by a.PI_SHORT_NAME,a.PI_ITEM_CODE
order by a.PI_SHORT_NAME,a.PI_ITEM_CODE

Как достать поле SITEM_CODE?
27 авг 13, 15:12    [14760921]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
из where во from
Guest
перенести подзапрос из where во from
27 авг 13, 15:13    [14760928]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
фееричный екзист :)
27 авг 13, 15:17    [14760962]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
NatashaM
Member

Откуда: Санкт-Петербург
Сообщений: 16
buser,я только учусь и такие ошибки - вполне ожидаемы))
27 авг 13, 15:19    [14760973]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
NatashaM
Member

Откуда: Санкт-Петербург
Сообщений: 16
из where во from,эм... можно чуть подробнее,пожалуйста?
27 авг 13, 15:21    [14760996]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
iap
Member

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

Ваш EXISTS() говорит лишь о том, что таблица Sitem не должна быть пустой.
Так и надо, да?
Связи между таблицами Sitem и Pht_Items совершенно неочевидны.
Напрашивается CROSS APPLY, но версия сервера неизвестна!
Я сломал себе левый глаз, когда пытался рассмотреть, что Вы тут понаписали...
Неужели трудно пользоваться тегом SRC?

Надо бы, всё же, выполнить рекомендации по оформлению сообщений. Вот что я Вам скажу.
27 авг 13, 15:22    [14761004]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
SITEM_CODE = ITEM_CODE ?

Вместо exists можно иннер джойн на Sitem... один черт у вас group by
27 авг 13, 15:22    [14761007]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
buser
SITEM_CODE = ITEM_CODE ?

Вместо exists можно иннер джойн на Sitem... один черт у вас group by
Кстати, с какой целью?
27 авг 13, 15:23    [14761016]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
NatashaM
Member

Откуда: Санкт-Петербург
Сообщений: 16
iap,2008 сервер.
Извините,я,видимо, упустила момент с оформлением.
27 авг 13, 15:35    [14761146]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
iap, это был телепатичиский вброс...
27 авг 13, 15:56    [14761336]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
buser
iap, это был телепатичиский вброс...
Не, я не Вас как бы спрашивал про GROUP BY,
а автора оригинального запроса.
27 авг 13, 16:01    [14761392]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
NatashaM
Member

Откуда: Санкт-Петербург
Сообщений: 16
Дали мне по рукам и сказали,как надо
select * 
from Sitem
where SI_PI_ITEM_CODE in 
		(
		Select PI_ITEM_CODE
		from Pht_Items
		where PI_NAME_IN_PRICE like '%панад%'
		)
27 авг 13, 16:01    [14761401]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2395
NatashaM
Дали мне по рукам и сказали,как надо


можете тоже по рукам дать


select s.* 
from Sitem as s
		inner join Pht_Items as p on s.SI_PI_ITEM_CODE = p.PI_ITEM_CODE
where  PI_NAME_IN_PRICE like '%панад%'
27 авг 13, 16:05    [14761453]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
Гость333
Member

Откуда:
Сообщений: 3683
StarikNavy
NatashaM
Дали мне по рукам и сказали,как надо


можете тоже по рукам дать


select s.* 
from Sitem as s
		inner join Pht_Items as p on s.SI_PI_ITEM_CODE = p.PI_ITEM_CODE
where  PI_NAME_IN_PRICE like '%панад%'

Вы считаете, будто написали эквивалентный запрос?
27 авг 13, 16:09    [14761496]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
Pht_Items
Guest
Гость333
StarikNavy
пропущено...


можете тоже по рукам дать


select s.* 
from Sitem as s
		inner join Pht_Items as p on s.SI_PI_ITEM_CODE = p.PI_ITEM_CODE
where  PI_NAME_IN_PRICE like '%панад%'

Вы считаете, будто написали эквивалентный запрос?

если смотреть не только на запроса, то, имхо, да

Pht_Items - это видимо справочник товаров и PI_ITEM_CODE в нем уникален и не nullble
27 авг 13, 16:12    [14761523]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
NatashaM
Member

Откуда: Санкт-Петербург
Сообщений: 16
Pht_Items, вообще,Вы правы) Спасибо!
Правда, решили вложенный использовать. Но я буду знать альтернативу зато))
27 авг 13, 16:17    [14761584]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
NatashaM
Member

Откуда: Санкт-Петербург
Сообщений: 16
Не туда отправила)
StarikNavy Вам предназначалось
NatashaM
Pht_Items, вообще,Вы правы) Спасибо!
Правда, решили вложенный использовать. Но я буду знать альтернативу зато))
27 авг 13, 16:20    [14761611]     Ответить | Цитировать Сообщить модератору
 Re: Вытащить поле из подзапроса  [new]
StarikNavy
Member

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

как справедливо упрекнул Гость333 и отметил Pht_Items, запросы эквиваленты при условие что Pht_Items справочник
27 авг 13, 16:40    [14761831]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить