Вниз
Скачать: CL | DM;

Как уместить в одном запросе ?   Найти похожие ветки 

 
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
1-45255
Arbin
2002-10-03 09:22
2002.10.14
ОТправка сообщений на компы


1-45456
Тень
2002-10-02 17:43
2002.10.14
Помогите, как программно вычислить квадратный корень.


1-45402
Arbin
2002-10-03 10:26
2002.10.14
Элиза


1-45270
Nicko
2002-10-04 12:05
2002.10.14
Директория проэкта


1-45361
Anar
2002-10-05 21:52
2002.10.14
Опять про чтение из текстового файла...




   Наверх