Форум: "Базы";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];
ВнизКак уместить в одном запросе ? Найти похожие ветки
← →
wed (2002-09-23 12:11) [0]запрос
select k.name, sum(n.summ) as zs
from nakl n, klients k
where n.klient=k.klient
and year(dd_data)=2002
and month(dd_data)=9
group by k.name
order by k.name
т.е. выводится сумма продаж за сентябрь.
Можно ли вывести так:
наименование, сумма за август, сумма за сентябрь ....
спасибо.
← →
3JIA9I CyKA (2002-09-23 12:20) [1]Да
← →
Johnmen (2002-09-23 12:24) [2]Общий принцип :
SELECT k.name,(SELECT SUM <за авг.>),(SELECT SUM <за сент.>),...
WHERE ...
GROUP BY ...
ORDER BY ...
← →
wed (2002-09-23 12:25) [3]и оригиналный примерчик пжалста...
← →
Marcus (2002-09-23 12:37) [4]-- Самый простой, но и самый объемный вариант такой:
create table #results (ID int identity, SumAugust float null, SumSeptember float null, ...)
declare @ID int
insert #results (SumAugust)
select sum(n.summ) from nakl n, klients k
where n.klient=k.klient
and year(dd_data)=2002
and month(dd_data)=8
group by k.name
order by k.name
select @ID = @@identity
update #results
set SumSeptember =
(select sum(n.summ) from nakl n, klients k
where n.klient=k.klient
and year(dd_data)=2002
and month(dd_data)=9
group by k.name
order by k.name)
where ID = @ID
...
select * from #results
-- Можно попробовать и так
сreate table #results (ID int identity, Sum1 float null, Sum2 float null, ... Sum12 float null)
declare @ID int, @Month int, @FieldName sysname
select @Month = 1
while (@Month < 13)
begin
select @FieldName = "Sum" + convert(varchar(2), @Month)
exec ("insert #results (" + @FieldName + ")
select sum(n.summ) from nakl n, klients k
where n.klient=k.klient
and year(dd_data)=2002
and month(dd_data)=" + @Month +
" group by k.name order by k.name")
if @Month = 1 select @ID = @@identity
-- ну и так далее, как в предыдущем примере
select @Month = @Month + 1
end
← →
maximen (2002-09-23 13:20) [5]А про перекрестные запросы Вы никогда не слышали???? Они для этого и предназначены!
TRANSFORM Sum(Query_All.dsumm) AS [Sum-dsumm]
SELECT Query_All.klient
FROM Query_All
GROUP BY Query_All.klient
PIVOT Query_All.Month;
← →
3JIA9I CyKA (2002-09-23 15:11) [6]Может быть, я чтото не то делаю, но мне не удалось удостовериться в работоспособности такого запроса. И в BOL-е ничего такого нет. Что это такое ?!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c