Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Продуманная сортировка (число прочтений - 2144 )
Rubin
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 70
Зарегистрирован: 31. Июля 2007
Продуманная сортировка
10. Февраля 2009 :: 14:02
Печать  
Доскажите, пожалуйста: существует ли простое решение для следующей задачи? (если существует - то какое? Улыбка)

Значет так. Есть табличка, полученная в результате группировки с суммированием итогов - WITH ROLLUP. Число обозначает проданное за период количество.
. . . 30
Товар1 . . 10
Товар1 Клиент1 РН 2 (15.10.08)   4
Товар1 Клиент1 РН 1 (20.10.08)   6
Товар1 Клиент1 . 10
Товар2 . . 20
Товар2 Клиент2 РН 3 (05.10.08)   11
Товар2 Клиент2   . 11
Товар2 Клиент3 РН 4 (10.10.08)   9
Товар2 Клиент3 . 9


Очень хотелось бы получить табличку, в которой товары были бы сортированы в порядке убывания проданного количества по ним. Клиенты сортированы (что самое имхо сложное) - в поряке убывания дат расходных накладных, по ним выписанным (то есть для каждого клиента берётся дата последнего дока)... Ну и доки в порядке убывания дат.. Вот результат для моего примерчика.
. . . 30
Товар2 . . 20
Товар2 Клиент3   . 11
Товар2 Клиент3 РН 4 (10.10.08)   11
Товар2 Клиент2 . 9
Товар2 Клиент2 РН 3 (05.10.08)   9
Товар1 . . 10
Товар1 Клиент1 . 10
Товар1 Клиент1 РН 1 (20.10.08)   6
Товар1 Клиент1 РН 2 (15.10.08)   4

Надеюсь описание задачи понятно расписал...  Озадачен
В общем вот так..
Моё решение было б такое - несколько отдельных таблиц.. Напр Товар-Колво с сортировкой... Товар-Клиент-ДатаПослДока с сортировкой.. Товар-Клиент-Док.. А потом их соединить Товар-Клиент-Док-Колво. Но я не думаю, что это оптимально. Печаль
« Последняя редакция: 11. Февраля 2009 :: 06:13 - Rubin »  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Продуманная сортировка
Ответ #1 - 10. Февраля 2009 :: 15:23
Печать  
Ну и показал бы текст запроса который получает начальный результат Улыбка
  
Наверх
IP записан
 
Rubin
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 70
Зарегистрирован: 31. Июля 2007
Re: Продуманная сортировка
Ответ #2 - 11. Февраля 2009 :: 05:43
Печать  
Запрос очень простенький Улыбка


Код
Выбрать все
SELECT                                                                    
	$РНСтроки.Товар 		[Товар $Справочник.Номенклатура],
	$РН.Клиент			[Клиент $Справочник.Контрагенты],
	РН.IDDoc			[Док $Документ.РасходнаяНакладная],
	SUM($РНСтроки.Количество)	[Количество]
FROM
	$Документ.РасходнаяНакладная as РН                                
INNER JOIN
	_1SJourn as Журн On Журн.IDDoc = РН.IDDoc
		AND Журн.Date_Time_IDDoc BETWEEN :ДатаНач AND :ДатаКон~
INNER JOIN
	$ДокументСтроки.РасходнаяНакладная as РНСтроки
		On РНСтроки.IDDoc = РН.IDDoc    
GROUP BY
	$РНСтроки.Товар,$РН.Клиент,РН.IDDoc WITH ROLLUP  




вот...
  
Наверх
 
IP записан
 
leonvlas
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 47
Зарегистрирован: 03. Августа 2007
Re: Продуманная сортировка
Ответ #3 - 11. Февраля 2009 :: 06:50
Печать  
используешь groping(колонка групировки), а потом сортируй как хочешь
  
Наверх
 
IP записан
 
leonvlas
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 47
Зарегистрирован: 03. Августа 2007
Re: Продуманная сортировка
Ответ #4 - 11. Февраля 2009 :: 06:53
Печать  
причем можно использовать 2 вида сортировки, собственно средствами sql или 1с - структура останится таже а порядок сортировки будет разный. лично я сортирую средствами 1с
  
Наверх
 
IP записан
 
Rubin
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 70
Зарегистрирован: 31. Июля 2007
Re: Продуманная сортировка
Ответ #5 - 11. Февраля 2009 :: 07:00
Печать  
спасибо, попробую что-то придумать с groupingом.. но пока как-то не оч представляю чем он здесь поможет... подумаю щас..
  
Наверх
 
IP записан
 
leonvlas
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 47
Зарегистрирован: 03. Августа 2007
Re: Продуманная сортировка
Ответ #6 - 11. Февраля 2009 :: 07:05
Печать  
Вот старенький отчет как пример использования, правда писан на toysql но суть таже
  

_______________________II.rar ( 19 KB | Загрузки )
Наверх
 
IP записан
 
Rubin
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 70
Зарегистрирован: 31. Июля 2007
Re: Продуманная сортировка
Ответ #7 - 11. Февраля 2009 :: 07:06
Печать  
спасибо, сейчас гляну Улыбка
  
Наверх
 
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Продуманная сортировка
Ответ #8 - 12. Февраля 2009 :: 03:10
Печать  
Попробуй результаты запроса выгрузить в Индексированную таблицу, потом группировать и сортируй тзПотомки как хочешь.

Достаточно удобно и код читается хорошо.
  
Наверх
ICQ  
IP записан
 
Rubin
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 70
Зарегистрирован: 31. Июля 2007
Re: Продуманная сортировка
Ответ #9 - 12. Февраля 2009 :: 07:09
Печать  
vivm писал(а) 12. Февраля 2009 :: 03:10:
Попробуй результаты запроса выгрузить в Индексированную таблицу, потом группировать и сортируй тзПотомки как хочешь.

Достаточно удобно и код читается хорошо.


спасибо Улыбка
Но я на самом деле уже пошёл по кратчайшему пути и сделал всё средствами 1с.. Получилось всё очень просто.. Потребовалось создать пару доп столбоцов в ТЗ выборки и сортировать по ним. Хотя наверно сразу в запросе сортировка бы работала быстрее.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать