Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.14;
Скачать: 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 вся ветка

Текущий архив: 2002.10.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
14-45536
Kinder
2002-09-18 21:55
2002.10.14
Телефонный справочник... Адреса?


1-45404
dimonf
2002-10-03 10:36
2002.10.14
Подскажите плиз, как распахнуть MDI окно при FormActivate?


1-45439
Weare
2002-10-02 20:22
2002.10.14
Предварительный просмотр


1-45413
СлБ
2002-10-03 12:52
2002.10.14
Фиксация ToolButton


6-45478
Ksion
2002-08-11 08:30
2002.10.14
Помогите, плиз! Получение файлов из инета.