powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в одном запросе сделать 2 группировки?
8 сообщений из 8, страница 1 из 1
Как в одном запросе сделать 2 группировки?
    #36584889
Есть несколько автомастерских, в каждой числится некоторое количество машин, у каждой машины есть марка и некоторые тех.параметры, которые нужно сложить. Собрал всю эту инфу в курсор. Задача: вытянуть из этого главного курсора инфу о машинах, сложив их тех.параметры, но сложив только для машин одной марки и закрепленных за одной и той же автомастерской. 2 группировки, вывод запроса во второй курсор. Как сделать?
mainCurr:
Autodoc название автомастерской
Carlogo марка автомобиля
Techdate1 поле с тех.данными, числовой тип
Techdate2 поле с тех.данными, числовой тип
Techdate3 поле с тех.данными, числовой тип

з.ы. Работаю в 9ке, перед запросами с группировкой ставлю SET ENGINEBEHAVIOR 70.
...
Рейтинг: 0 / 0
Как в одном запросе сделать 2 группировки?
    #36584890
Результат в таком виде:
Назв.автомастерской | Марка_авто | Тех.данные1 | Тех.данные2 | Тех.данные3
...
Рейтинг: 0 / 0
Как в одном запросе сделать 2 группировки?
    #36584914
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Группировку можно делать по нескольким полям:
Код: plaintext
GROUP by Autodoc, Carlogo
...
Рейтинг: 0 / 0
Как в одном запросе сделать 2 группировки?
    #36584915
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SET ENGINEBEHAVIOR 70
не нужен,
если правильно писать запрос.

видишь, мне не понадобилось дергать EngineBehavior,
почему так - поиском в данном форуме

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Set EngineBehavior  90 

Create CURSOR mainCurr ( Autodoc   v( 50 )	; &&название автомастерской 
						,Carlogo   v( 10 )	; &&марка автомобиля
						,Techdate1 n( 10 )	; &&поле с тех.данными, числовой тип 
						,Techdate2 n( 10 )	; &&поле с тех.данными, числовой тип
						,Techdate3 n( 10 )	; &&поле с тех.данными, числовой тип
						)
						
Insert into mainCurr ;
			values (  'у пети'  ;
					, 'копейка' ;
					,  10 ,  20 ,  30  )
					
Insert into mainCurr ;
			values (  'у пети'  ;
					, 'копейка' ;
					,  10 ,  20 ,  30  )
											
Insert into mainCurr ;
			values (  'у васи'  ;
					, 'копейка' ;
					,  10 ,  20 ,  30  )
											
Select Autodoc ;
	,  Carlogo ;
	, sum(Techdate1) ;
	, Sum(Techdate2) ;
	, Sum(Techdate3) ;
  from mainCurr ;
  group by Autodoc, Carlogo 
...
Рейтинг: 0 / 0
Как в одном запросе сделать 2 группировки?
    #36584917
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select autodoc,carlogo,sum(Techdate1) as Techdate1,sum(Techdate2) as Techdate2,sum(Techdate3) as Techdate3 from MyCursor into cursor Result group by  1 , 2 
...
Рейтинг: 0 / 0
Как в одном запросе сделать 2 группировки?
    #36584924
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GermanGM
Код: plaintext
select autodoc,carlogo,sum(Techdate1) as Techdate1,sum(Techdate2) as Techdate2,sum(Techdate3) as Techdate3 from MyCursor into cursor Result group by  1 , 2 



group by 1,2

если явно знаешь имена полей - так никогда не делай
поубивал бы ...
...
Рейтинг: 0 / 0
Как в одном запросе сделать 2 группировки?
    #36584981
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимо,

off Обещаю вскоре исправиться! :)
...
Рейтинг: 0 / 0
Как в одном запросе сделать 2 группировки?
    #36585004
Блин, а я думал типа подзапросами делать. Пробовал одну группировку -- либо по мастерским, либо по маркам, в итоге по одной записи выводилось -- по последней марке в главном курсоре.
Оказывается, group by можно с двумя полями использовать: сначала группируется по первому, затем по второму. Всем большое спасибо за помощь!
С set поищю по форуму.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в одном запросе сделать 2 группировки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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