Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.013 c
14-45583
REA
2002-09-19 15:54
2002.10.14
Хумор


3-45202
RDK
2002-09-23 10:29
2002.10.14
таблица PARADOX


1-45292
Andrei_Yarovoi
2002-10-04 16:29
2002.10.14
Как при выполнение длинного цикла отлавлевать другие сабытия


7-45595
snoup
2002-08-02 20:18
2002.10.14
Подскажите плиз какой ф-ей можно узнать о системном железе, напри


3-45197
oss
2002-09-23 09:48
2002.10.14
Midas, Авторизация





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский