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

Откуда:
Сообщений: 17
уважаемые товарищи!

в наличии некоторые сложности с написанием запроса, посоветуйте что-нибудь, если есть идеи, пожалуйста.
значит, суть (для понимания провел аналогию с квартирами и холодильниками):
имеются следующие таблицы:
Квартира
Холодильник
Коробка
Продукт_коробка
Пакет
Продукт_пакет


Связи:
С одной квартире может быть N холодильников (1:N)
В одном холодильнике может быть N коробок (1:N)
В одном холодильнике может быть N пакетов (1:N)
В одной коробке может быть N продуктов с различным количеством, эти же продукты могут быть в другой коробке (N:N)
В одном пакете может быть N продуктов с различным количеством, эти же продукты могут быть в другом пакете (N:N)

Картинка с другого сайта.


Что я пытаюсь получить:
таблицу, в которой суммировалось бы отдельно количество по продуктам в коробках и пакетах
что-то вроде того (пытаюсь получить оба варианта):

Картинка с другого сайта.

долго писал всяческие JOIN'ы, без последнего столбца результат получается, но вот чтобы сумма была еще и по пакетам в той же таблице - никак не получается сделать.

посему прошу подсобить, коли найдутся желающие!
спасибо!

Также привожу пример кода, который я написал и по которому не получается состряпать желаемую таблицу
ПС. Пишу в Visual Studio 2008 Reporting Services, группирую уже на форме отчета.

SELECT     *
FROM         Квартира INNER JOIN
                Холодильник ON Квартира.Квартира_id = Холодильник.Квартира_id INNER JOIN
                Коробка ON Коробка.Холодильник_id = Холодильник.Холодильник_id INNER JOIN
                Продукт_коробка ON Коробка.Коробка_id = Продукт_коробка.Коробка_id FULL OUTER JOIN
                Продукт_пакет ON Продукт_пакет.Продукт_id = Продукт_коробка.Продукт_id INNER JOIN
                Пакет ON Пакет.Пакет_id = Продукт_пакет.Пакет_id AND 
                Холодильник.Холодильник_id = Пакет.Холодильник_id


К сообщению приложен файл. Размер - 79Kb
24 мар 12, 12:00    [12305949]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите, пожалуйста с запросом про квартиры,холодильники и продукты!  [new]
Semen_v.2.01
Member

Откуда:
Сообщений: 17
Извиняюсь за приложенный файл)
24 мар 12, 12:03    [12305953]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите, пожалуйста с запросом про квартиры,холодильники и продукты!  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
можно и на T-SQL сгруппировать через оконные функции
24 мар 12, 12:05    [12305957]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите, пожалуйста с запросом про квартиры,холодильники и продукты!  [new]
qwerty112
Guest
Semen_v.2.01,

судя по запросу - есть таблицы с данными ?
ну так выложи скрипты создания/заполнения этих таблиц
24 мар 12, 12:08    [12305971]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите, пожалуйста с запросом про квартиры,холодильники и продукты!  [new]
qwerty112
Guest
Semen_v.2.01
ПС. Пишу в Visual Studio 2008 Reporting Services, группирую уже на форме отчета.

хее, так тогда вообще всё просто
делаеш запрос так что бы он выбирал тебе всё что нужно (просто плоской таблицей)
а в рипортинге - делаеш Матрикс-отчет, и колонками - выбираеш признак пакет/коробка

всё !
24 мар 12, 12:15    [12305983]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить