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

Откуда:
Сообщений: 1197
Привет

Есть такие таблицы, которые заполненны определенными данными

declare @weekDates table (week int, date date)
declare @products table (productDivision nvarchar(30), productGroup nvarchar(30), model nvarchar(30))
declare @customers table (customerid int)
declare @sales table (customerid int, saleAmount money, model nvarchar(30), saledate date)



Как вывести сумму продаж по всем customerid, сгруппированным по week, потом по productDivision, потом по productGroup

т.е. если у customerid = 1 продаж за week = 1 не было то надо
показать:

customerid = 1, все week, productDivision, productGroup и 0 в колонке сумма продаж
4 апр 13, 10:55    [14134322]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из многих таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
relief
Как вывести сумму продаж по всем customerid, сгруппированным по week, потом по productDivision, потом по productGroup

Написать запрос, в котором соединить таблицы через join, использовать group by "по week, потом по productDivision, потом по productGroup" и SUM() для "сумму продаж"
4 апр 13, 10:57    [14134343]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из многих таблиц  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
relief
Как вывести сумму продаж по всем customerid, сгруппированным по week, потом по productDivision, потом по productGroup
А какие сложности? Обычный запрос, GROUP BY по customerid, week, productDivision, productGroup, SUM для saleAmount
Естественно, нужно делать ltft join для sales

Раз нужно показывать все сочетания customerid, week, productDivision, productGroup, то соответственно CROSS JOIN
4 апр 13, 11:00    [14134368]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из многих таблиц  [new]
relief
Member

Откуда:
Сообщений: 1197
Glory
relief
Как вывести сумму продаж по всем customerid, сгруппированным по week, потом по productDivision, потом по productGroup

Написать запрос, в котором соединить таблицы через join, использовать group by "по week, потом по productDivision, потом по productGroup" и SUM() для "сумму продаж"


просто Join нельзя.
кэйс почему не работает.

@StartDate = '01/01/2013'
@EndDate = '01/03/2013'


если к примеру за февраль продаж не будет, то данные недели показаны не будут. а надо показывать нули по всем неделям, дивизионам и группам
4 апр 13, 11:02    [14134390]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из многих таблиц  [new]
relief
Member

Откуда:
Сообщений: 1197
alexeyvg
relief
Как вывести сумму продаж по всем customerid, сгруппированным по week, потом по productDivision, потом по productGroup
А какие сложности? Обычный запрос, GROUP BY по customerid, week, productDivision, productGroup, SUM для saleAmount
Естественно, нужно делать ltft join для sales

Раз нужно показывать все сочетания customerid, week, productDivision, productGroup, то соответственно CROSS JOIN
4 апр 13, 11:04    [14134408]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из многих таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
relief
просто Join нельзя.

Религия не позволяет ?

relief
если к примеру за февраль продаж не будет, то данные недели показаны не будут. а надо показывать нули по всем неделям, дивизионам и группам

Я так понимаю, что с типами JOIN-ов вы тоже не знакомы ?
4 апр 13, 11:04    [14134410]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из многих таблиц  [new]
relief
Member

Откуда:
Сообщений: 1197
Glory
relief
просто Join нельзя.

Религия не позволяет ?

relief
если к примеру за февраль продаж не будет, то данные недели показаны не будут. а надо показывать нули по всем неделям, дивизионам и группам

Я так понимаю, что с типами JOIN-ов вы тоже не знакомы ?



cross использую сейчас, но долго работает. думал есть другие варианты
4 апр 13, 11:07    [14134433]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из многих таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
relief
cross использую сейчас, но долго работает. думал есть другие варианты

Если миллион записей кроссджойнить(т.е. умножить) еще с миллионом, то такой запрос не может быть быстрым
4 апр 13, 11:11    [14134458]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из многих таблиц  [new]
Maxx
Member [скрыт]

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

Using Joins
4 апр 13, 11:11    [14134459]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из многих таблиц  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
relief
cross использую сейчас, но долго работает. думал есть другие варианты
Наверное, неправильно используете, где то ошибка в ваших запросах?

Или просто получается много данных, ведь даже для маленьких таблиц могут быть миллиарды строк в результатах.
4 апр 13, 11:18    [14134514]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить