Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Простейшая задача  [new]
An456
Guest
Есть таблица Table(IdCustomer, Date, Sum)
Необходимо вывести покупателей по месяцам ( IdCustomer )
совершивших покупки на максимальную сумму. Вот :)
21 сен 13, 22:02    [14868054]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая задача  [new]
zxc1257
Member

Откуда:
Сообщений: 71
An456,

create table Tbl(IdCustomer int, [Date] date, [Sum] money);

select top(1) with ties
	idcustomer,
	datediff(month, [date], '19800101'), sum([sum]) as sum
from tbl
group by idcustomer, datediff(month, [date], '19800101')
order by dense_rank() over (partition by datediff(month, [date], '19800101') order by sum([sum]))


не?
21 сен 13, 22:29    [14868104]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая задача  [new]
zxc1257
Member

Откуда:
Сообщений: 71
zxc1257,

fix
select top(1) with ties
	idcustomer,
	dateadd(month, datediff(month, [date], '19800101'), '19800101') as [date],
	sum([sum]) as sum
from tbl
group by idcustomer, datediff(month, [date], '19800101')
order by dense_rank() over (partition by datediff(month, [date], '19800101') order by sum([sum]))
21 сен 13, 22:33    [14868110]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая задача  [new]
zxc1257
Member

Откуда:
Сообщений: 71
An456
совершивших покупки на максимальную сумму. Вот :)


если имеется ввиду итоговая месячная сумма, то как выше, если разовая сумма, то sum([sum]) заменить на max([sum])
21 сен 13, 22:37    [14868118]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая задача  [new]
zxc1257
Member

Откуда:
Сообщений: 71
select top(1) with ties
	idcustomer,
	dateadd(month, datediff(month, '19800101', [date]), '19800101') as [date],
	sum([sum]) as sum
from tbl
group by idcustomer, datediff(month, '19800101', [date])
order by dense_rank() over (partition by datediff(month, '19800101', [date]) order by sum([sum]) desc)


еще фикс, и с датами косяк был
21 сен 13, 22:50    [14868130]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить