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

Откуда:
Сообщений: 59
Есть таблица Статусы И Заказы (stat , orders)
id_stat
name_stat

id_orders
id_stat
id_categories
name_orders

В каждом заказе есть id_stat (из таблицы статусы) и id_categories .

Мне нужо получить для некоторого значения id_categories = 5
cправочник включающий ВСЕ записи таблицы stat (по одному разу) и связанное поле id_categories
Поля результата:
id_stat, name_stat, id_categories

Если нет заказов с id_categories=5, в соответствующих строках id_categories должно быть равно null

Примерно так
id_stat, name_stat, id_categories
--------------------------------
1 1-й статус 5
2 2-й статус NULL
3 3-й статус NULL
4 4-й статус 5
.....



--
С уважением,
Сергей
27 ноя 13, 23:37    [15202582]     Ответить | Цитировать Сообщить модератору
 Re: Простой запрос помоги собрать, плз  [new]
sdet
Member

Откуда:
Сообщений: 463
Sergey A.,
Не могли бы вы объяснить, как так получается, что по статистике на сайте вы занимаетесь sql давно, однако не прогрессируете в развитии, а наоборот?
28 ноя 13, 01:41    [15202956]     Ответить | Цитировать Сообщить модератору
 Re: Простой запрос помоги собрать, плз  [new]
aleks2
Guest
sdet
Sergey A.,
Не могли бы вы объяснить, как так получается, что по статистике на сайте вы занимаетесь sql давно, однако не прогрессируете в развитии, а наоборот?


Это сорт "программеров-паразитов", которые живут чужим умом.
28 ноя 13, 06:03    [15203160]     Ответить | Цитировать Сообщить модератору
 Re: Простой запрос помоги собрать, плз  [new]
aleks2
Guest
select s.*, z.id_categories
from Статусы s outer apply ( select top(1) * from Заказы z where z.id_stat = s.id_stat and z.id_categories = 5 ) z

select s.*, case when exists(select * from Заказы z where z.id_stat = s.id_stat and z.id_categories = 5) then 5 end
from Статусы s 

select s.*, z.id_categories
from Статусы s left outer join ( select id_stat, min(id_categories) id_categories from Заказы where id_categories = 5 group by id_stat ) z 
     on s.id_stat = z.id_stat


ЗЫ. Но паразиты нужны - они поднимают ценность хозяев.
28 ноя 13, 06:11    [15203163]     Ответить | Цитировать Сообщить модератору
 Re: Простой запрос помоги собрать, плз  [new]
Sergey A.
Member

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

Я вообще не программист :-)

Но иногда что-то для себя строю..
29 ноя 13, 09:27    [15209771]     Ответить | Цитировать Сообщить модератору
 Re: Простой запрос помоги собрать, плз  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Sergey A.
Я вообще не программист :-)
Но иногда что-то для себя строю..
Отличный повод забанить.
29 ноя 13, 23:13    [15215757]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить