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

Откуда:
Сообщений: 16
Здравствуйте! Прошу помощи в таком вопросе...
У меня есть два отдельных запроса, которые возвращают сумму покупок в разрезе категорий продуктов за последние 30 дней:

SELECT
	DocDate, Sum(SumCC_wt) AS SumCC_wt
FROM t_Sale s JOIN t_SaleD sd ON s.ChId = sd.ChId JOIN r_Prods p ON sd.ProdId = p.ProdId
WHERE p.PCatID=2 AND DocDate BETWEEN DateAdd(day, - 31, @EDate) AND @EDate
GROUP BY DocDate
ORDER BY DocDate

SELECT
	DocDate, Sum(SumCC_wt) AS SumCC_wt
FROM t_Sale s JOIN t_SaleD sd ON s.ChId = sd.ChId JOIN r_Prods p ON sd.ProdId = p.ProdId
WHERE p.PCatID=1 AND DocDate BETWEEN DateAdd(day, - 31, @EDate) AND @EDate
GROUP BY DocDate
ORDER BY DocDate

В результате один запрос возвращает список дат и суммы продаж по этим датам, второй - соответственно.
Но мне нужно каким-то образом сгруппировать результаты выполнения этих запросов, чтобы они выводились одной таблицей вида ("Дата", "Сумма в разрезе одной категории", "Сумма в разрезе другой категории"). Вот и хочу у вас спросить совета, как это можно реализовать (если можно вообще)? Буду очень благодарна за помощь!
11 авг 12, 12:09    [12997532]     Ответить | Цитировать Сообщить модератору
 Re: Вставка результатов запросов в одну таблицу  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
SELECT
	DocDate,
	Sum(case when p.PCatID = 1 then SumCC_wt end) AS SumCC_wt_1,
	Sum(case when p.PCatID = 2 then SumCC_wt end) AS SumCC_wt_2
FROM t_Sale s JOIN t_SaleD sd ON s.ChId = sd.ChId JOIN r_Prods p ON sd.ProdId = p.ProdId
WHERE p.PCatID in (1, 2) AND DocDate BETWEEN DateAdd(day, - 31, @EDate) AND @EDate
GROUP BY DocDate
ORDER BY DocDate
11 авг 12, 12:18    [12997546]     Ответить | Цитировать Сообщить модератору
 Re: Вставка результатов запросов в одну таблицу  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
solitary,

попробуйте что-то типа этого
SELECT
	DocDate, 
	Sum(case when p.PCatID=1 then SumCC_wt else 0 end) AS SumCC_wt1,
	Sum(case when p.PCatID=2 then SumCC_wt else 0 end) AS SumCC_wt2
FROM 
	t_Sale s JOIN t_SaleD sd ON s.ChId = sd.ChId JOIN r_Prods p ON sd.ProdId = p.ProdId
WHERE 
	p.PCatID in (1,2) AND 
	DocDate BETWEEN DateAdd(day, - 31, @EDate) AND @EDate
GROUP BY DocDate
ORDER BY DocDate
11 авг 12, 12:19    [12997548]     Ответить | Цитировать Сообщить модератору
 Re: Вставка результатов запросов в одну таблицу  [new]
solitary
Member

Откуда:
Сообщений: 16
Спасибо Вам большое за ответы, теперь все работает!
11 авг 12, 12:34    [12997556]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить