Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Убрать задвоения делением  [new]
ИгорьST
Member

Откуда:
Сообщений: 23
Всем добрый вечер. Господа эксперты, подскажите решение проблемы.
Суть: Есть некая вьюха, в которой обозначены суммы по документам, поставщикам и группам. Из этой вьюхи нужно отобрать группировку - товарная группа - сумма. Проблема в том что она составлена не корректно и сумма по документу в целом дублируется по каждой строчке с товарной группой. В запросе нужно разделить сумму по конкретной группе, по числу встречающихся номеров документов (скрин приложил). Я вроде бы через временные таблицы решил. А можно как-то изящнее в одном запросе? А то мне тянуть в Excel на XP, а там временные таблицы не поддерживаются

create table #t([Номер документа] numeric(15, 0), [Поставщик] nvarchar(50), [Товарная группа] nvarchar(50), [Сумма] numeric(15, 2))

insert into #t([Номер документа], [Поставщик], [Товарная группа], [Сумма])
values 
	(1, 'Поставщик1', 'Brend1', 5000),
	(2, 'Поставщик2', 'Brend33', 1000),
	(2, 'Поставщик2', 'Brend47', 1000),
	(2, 'Поставщик2', 'Brend15', 1000),
	(3, 'Поставщик 5', 'Brend2', 2000),
	(3, 'Поставщик 5', 'Brend3', 2000)

	select [Номер документа] nd, count([Номер документа]) cn into #tt from #t group by [Номер документа]
	select [Товарная группа], [Сумма]/#tt.cn
	from #t
	left join #tt on #t.[Номер документа] = #tt.nd
	group by [Товарная группа],[Сумма],#tt.cn
	drop table #t
	drop table #tt


К сообщению приложен файл. Размер - 44Kb
16 авг 16, 20:03    [19549483]     Ответить | Цитировать Сообщить модератору
 Re: Убрать задвоения делением  [new]
aleks2
Guest
Изящнее - правильно написать вью.
16 авг 16, 20:19    [19549524]     Ответить | Цитировать Сообщить модератору
 Re: Убрать задвоения делением  [new]
ИгорьST
Member

Откуда:
Сообщений: 23
К сожалению, это невозможно - она в сторонней БД не принадлежащей организации.
16 авг 16, 20:21    [19549532]     Ответить | Цитировать Сообщить модератору
 Re: Убрать задвоения делением  [new]
invm
Member

Откуда: Москва
Сообщений: 9723
select
 [Товарная группа], [Сумма] / count(*) over (partition by [Номер документа])
from
 #t;
16 авг 16, 21:22    [19549755]     Ответить | Цитировать Сообщить модератору
 Re: Убрать задвоения делением  [new]
ИгорьST
Member

Откуда:
Сообщений: 23
Во. То что нужно. Кратко и работает. Спасибо!
16 авг 16, 23:02    [19550069]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить