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

Откуда:
Сообщений: 14
Добрый день.

Помогите в решении такого вопроса. Есть 3 таблицы - поставщик,объекты_хранения и тара.
Таблица Объекты_хранения имеет такую структуру:

ид тип_ох ид_тары ид_поставщика

1 принтер 1 3
2 сканер 1 1
3 копир 1 2
4 принтер 2 3
5 сканер 2 1
6 копир 3 2
и.т.д

Таблица Поставщик имеет структуру:

ид название_поставщика

1 Canon
2 HP
3 Xerox
и.т.д


Таблица Тара имеет структуру:

ид название_тары

1 Контейнер_1тонна
2 Контейнер_2тонны
3 Контейнер_3тонны
и.т.д

Таблица объекты хранения связанна с таблицами 'Поставщик' по ид_поставщика, а с 'Тара' по ид_тары.
В одной таре могут находится все типы объектов хранения.
Необходимо написать скрипт который будет выводить количество полученных объектов хранения разделенных по типу и количество тар разделенных по типу и все это
сгруппировать по поставщику.
Пытаюсь сделать так :

select Поставщик.название_поставщика,
COUNT(CASE WHEN Объекты_хранения.тип_ох = принтер THEN 1 END) 'принтер',
COUNT(CASE WHEN Объекты_хранения.тип_ох = сканер THEN 1 END) 'скане',
COUNT(CASE WHEN Объекты_хранения.тип_ох = копир THEN 1 END) 'копир'
from объекты_хранения
INNER JOIN Поставщик
on Поставщик.ид = объекты_хранения.ид_поставщика
INNER JOIN Тара
on Тара.ид = объекты_хранения.ид_тары
GROUP BY Поставщик.название_поставщика


Без проблем получается сгруппировать данные по поставщику и количеству объектов хранения по типу, а вот с подсчетом количества тар разделенных по типу возникает проблема.
В промежуточной таблице ид одной и той же тары повторяется столько раз сколько в ней объектов хранения.
16 май 12, 22:59    [12566481]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
qwerty112
Guest
hrrh2011,

тынц
17 май 12, 01:39    [12566799]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
Pegoopik
Guest
qwerty112,

Почему бы здесь не ответить. При чем здесь поддержка сайта sql-ex?
17 май 12, 10:26    [12567695]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
hrrh2011
Member

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

Я зарегистрировался на сайте по ссылке и задал вопрос в разделе помощь. Правильно или нет я поступил?
17 май 12, 10:56    [12567922]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
Glory
Member

Откуда:
Сообщений: 104751
hrrh2011
Я зарегистрировался на сайте по ссылке и задал вопрос в разделе помощь. Правильно или нет я поступил?

Если вы здесь пытаетесь решить задачу с sql-ex, то правильно
17 май 12, 11:01    [12567965]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
hrrh2011, что именно не получается?
В таблице "Объекты_хранения" не можете посчитать тару???
Вот:
select count(*) from [Объекты_хранения] group by  ид_тары -- подсчет в разрезе тары
select count(*) from [Объекты_хранения] group by  ид_тары, ид_поставщика -- в разрезе тары и поставщика

Если нужно нечто иное, то тестовые скрипты + ожидаемый результат
17 май 12, 11:04    [12567994]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
Pegoopik
Guest
hrrh2011
Я зарегистрировался на сайте по ссылке и задал вопрос в разделе помощь. Правильно или нет я поступил?

Я Вам там уже ответил:)
17 май 12, 11:05    [12568002]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
hrrh2011
qwerty112,

Я зарегистрировался на сайте по ссылке и задал вопрос в разделе помощь. Правильно или нет я поступил?

Объекты вашей задачи похожи на объекты sql-ex, а задача весьма похожа на учебную, т.к. элементарна. Вот посему вас и отправляли на sql-ex.
17 май 12, 11:06    [12568012]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
Pegoopik
Guest
kDnZP
Если нужно нечто иное, то тестовые скрипты + ожидаемый результат

На два фронта работаешь, Дмитрий?:)
А вообще я так понял надо что-то такое: (в моих обозначениях)
select T.name,
  max(case when T.type='Printer'then T.S_cnt end) As Printer_S_cnt,
  max(case when T.type='Scaner'then T.S_cnt end) As Scaner_S_cnt,
  max(case when T.type='Copy'then T.S_cnt end) As Copy_S_cnt,
  max(case when T.type='Printer'then T.B_cnt end) As Printer_B_cnt,
  max(case when T.type='Scaner'then T.B_cnt end) As Scaner_B_cnt,
  max(case when T.type='Copy'then T.B_cnt end) As Copy_B_cnt
from(
  select P.id, P.name, S.type,
    count(S.id) As S_cnt, 
    count(distinct B.id) As B_cnt
  from StoreObj S
    inner join Providers P on P.id = S.p_id
    inner join boxes B on B.id = S.b_id
  group by P.id, P.name, S.type
) As T
group by p.id
17 май 12, 11:11    [12568047]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Pegoopik, я не решаю задачи sql-ex вне sql-ex, если вы об этом. И не помогаю в решении учебных задач.

В то же время, по своему усмотрению вполне могу помочь даже с простыми задачами. И даже студентам, в некоторых случаях (если не считаю их совсем уж бездельниками).
sql.ru в плане получения опыта для меня более ценен, нежели sql-ex... Хотя я равно уважаю оба ресурса.

Итог: "На два фронта работаешь, Дмитрий?:)" - контекст фразы не совсем ясен. Судя по смайлику, скорее всего это не негативный контекст. Значит мой ответ: "Да, я регулярно общаюсь на обоих ресурсах".
17 май 12, 11:20    [12568122]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
Pegoopik
Guest
kDnZP
скорее всего это не негативный контекст

Да нет конечно. Наоборот не хотел, чтобы двусмысленно получилось. Вопрос был скорее риторический и сугубо на положительных эмоциях. Просто смотрю - ник знакомый.
А сюда залез только из-за письма в поддержку. Всё, всем сорри за флейм.
17 май 12, 11:27    [12568205]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
hrrh2011
Member

Откуда:
Сообщений: 14
Всем большое спасибо за оказанную помощь. Отдельное хочу сказать 'СПАСИБО' Pegoopik
Очень сильно выручили.
17 май 12, 14:05    [12569880]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
Pegoopik
Guest
hrrh2011,
почему в кавычках?
'ПОЖАЛУЙСТА' :-)
17 май 12, 14:14    [12570014]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
hrrh2011
Member

Откуда:
Сообщений: 14
ОНО на столько большое что пришлось ограничить кавычками.
17 май 12, 14:28    [12570203]     Ответить | Цитировать Сообщить модератору
 Re: Повторяющиеся значения в запросе  [new]
Serge I
Member

Откуда: Ростов-на-Дону
Сообщений: 484
Pegoopik
qwerty112,

Почему бы здесь не ответить. При чем здесь поддержка сайта sql-ex?


Видимо, имелась в виду ссылка на раздел обучающих упражнений.
17 май 12, 15:02    [12570580]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить