Главная страница
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.48 MB
Время: 0.023 c
1-45377
amo
2002-10-05 13:11
2002.10.14
изменить ресурсы в EXE


1-45418
Dmitriy Polskoy
2002-10-03 12:44
2002.10.14
Почему так?


6-45487
Alex_LG
2002-07-08 14:28
2002.10.14
Как узнать тип коннекта в инет - Dial-up или LAN ?


4-45646
fishca
2002-08-29 16:30
2002.10.14
Уменьшение процессорного времени отводимого программе


4-45632
Zejj
2002-08-29 17:59
2002.10.14
Как послать некую последовательность битов на Lpt порт?