Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите составить запрос / 11 сообщений из 11, страница 1 из 1
01.11.2002, 12:24:09
    #32063944
a72
a72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Исходные данные:
таблица
Покупатель__Товар___Дата палтежа___Сумма платежа

Необходимо:
Выбрать последнии покупки покупателя сумма которых меньше числа X


Буду очень признателен за любую помощь.
...
Рейтинг: 0 / 0
01.11.2002, 12:30:29
    #32063946
mad
mad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
"Говорите точно,скока вешать" (с)

Сколько последних покупок надо получить?
...
Рейтинг: 0 / 0
01.11.2002, 12:37:23
    #32063955
mad
mad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Покупатель__Товар___Дата платежа___Сумма платежа

select top [@N] * from table where [Дата платежа]>[@Начало периода] order by [Сумма платежа], [Дата платежа] desc

[@N], [@Начало периода] - параметры
...
Рейтинг: 0 / 0
01.11.2002, 13:26:48
    #32063996
a72
a72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Постораюсь сформулировать по точнее:

в таблице:

andrey__Сигареты__ 01.09.02__30р
andrey__Трусы_____02.09.02__10р
andrey__Майки_____03.09.02__30р
andrey__Конфеты___04.09.02__90р
andrey__Вода______05.09.02__20р
andrey__Сок_______06.09.02__30р

Необходимо выбрать последнии покупки покупателя сумма которых меньше 150 р
т.е.
andrey__Конфеты___04.09.02__90р
andrey__Вода______05.09.02__20р
andrey__Сок_______06.09.02__30р
...
Рейтинг: 0 / 0
01.11.2002, 13:42:35
    #32064017
vics
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Только 3(Сколько конкретно?) последние покупки со стоимостью <150р????
...
Рейтинг: 0 / 0
01.11.2002, 13:53:40
    #32064027
a72
a72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Имеется ввиду выбрать последние покупки, общая сумма которых не более 150р
...
Рейтинг: 0 / 0
01.11.2002, 13:55:41
    #32064029
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create table #t(mydate datetime, sum1 decimal( 10 , 2 ))

insert #t values('20020901',  30 )
insert #t values('20020902',  10 ) 
insert #t values('20020903',  30 ) 
insert #t values('20020904',  90 ) 
insert #t values('20020905',  20 ) 
insert #t values('20020906',  30 )


select a.mydate, max(a.sum1) as sum1, sum(isnull(b.sum1,  0 ))+max(a.sum1) as tot_sum
from #t a 
left outer join #t b on b.mydate > a.mydate
group by a.mydate having (sum(isnull(b.sum1,  0 ))+max(a.sum1)) <=  150 
order by a.mydate desc


drop table #t
...
Рейтинг: 0 / 0
01.11.2002, 23:17:00
    #32064281
a72
a72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
А как быть если товары покупал еще и serg (т.е. в таблице есть покупки других людей) ?
Необходимо выводить не только дату и платеж но и покупателя и наименование товара.
...
Рейтинг: 0 / 0
01.11.2002, 23:20:45
    #32064282
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Ну подумайте чуть-чуть

PS
Если до завтра н получится, то напишу
...
Рейтинг: 0 / 0
02.11.2002, 00:09:01
    #32064297
a72
a72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Спасибо нашел решение. На самом деле все очень просто.

SELECT *
FROM orders a
WHERE a.client = 'andrey'
AND 150 > (SELECT SUM (b.sum_pay)
FROM orders b
WHERE b.client = 'andrey'
AND a.date_pay <= b.date_pay)
ORDER BY a.date_pay
...
Рейтинг: 0 / 0
02.11.2002, 12:43:19
    #32064325
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос
Можете сранить, если интересно
Код: plaintext
1.
2.
3.
4.
select a.client, a.product, a.mydate, max(a.sum1) as sum1, sum(isnull(b.sum1,  0 ))+max(a.sum1) as tot_sum
from #t a 
left outer join #t b on b.mydate > a.mydate
group by a.client, a.product, a.mydate having (sum(isnull(b.sum1,  0 ))+max(a.sum1)) <=  150 
order by a.client, a.product, a.mydate
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите составить запрос / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]